首页/技术分享

二次开发教程:C#DynamicObject和ExpandoObject

发布于:2019-07-25 15:28:45
5290人 分享

    class Program

    {

        static void Main(string[] args)

        {

            //dynamic v = new ExpandoObject();

            //v.Name = "123";

            //v.Value = "456";

            dynamic v = new TestClass();

            v.Name = "Name";

            v.Value = "Value";

            Console.WriteLine(v.Name);

            Console.ReadLine();

        }

    }



    public class TestClass:DynamicObject

    {

        private Dictionary<string, object> _dynamicData = new Dictionary<string, object>();


        public override bool TryGetMember(GetMemberBinder binder, out object result)

        {

            result = null;

            if(_dynamicData.Keys.Contains(binder.Name))

            {

                result = _dynamicData[binder.Name];

                return true;

            }

            return false; 

        }


        public override bool TrySetMember(SetMemberBinder binder, object value)

        {

            if(_dynamicData.Keys.Contains(binder.Name))

            {

                _dynamicData[binder.Name] = value;

            }

            else

            {

                _dynamicData.Add(binder.Name, value);

            }

            return true;

        }

    }

转载请注明来源本文地址:https://www.tuituisoft/blog/3205.html

上一篇:

二次开发教程:WPF 使用INotifyDataErrorInfo小例子

下一篇:

关于revit中平面窗族的创建