自定义动态对象
2014-09-25 21:28
190 查看
1,自定义动态对象需要继承DynamicObject类
2,可根据需要,重写不同的DynamicObject方法
-----------------------------------------------------DynamicClass.cs
2,可根据需要,重写不同的DynamicObject方法
-----------------------------------------------------DynamicClass.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Dynamic; namespace ConsoleApplication3 { public class DynamicClass:DynamicObject { Dictionary<string, object> _dynamicData = new Dictionary<string, object>(); /// <summary> /// 为获取成员值的操作提供实现 /// </summary> /// <param name="binder"></param> /// <param name="result"></param> /// <returns></returns> public override bool TryGetMember(GetMemberBinder binder, out object result) { bool success = false; result = null; if (_dynamicData.ContainsKey(binder.Name)) { result = _dynamicData[binder.Name]; success = true; } else { result = "Property Not Found"; success = false; } return success; } /// <summary> /// 为设置成员值的操作提供实现 /// </summary> /// <param name="binder"></param> /// <param name="value"></param> /// <returns></returns> public override bool TrySetMember(SetMemberBinder binder, object value) { _dynamicData[binder.Name]= value; return true; } } }-----------------------------------------------------主程序
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Dynamic; namespace ConsoleApplication3 { class Program { static void Main(string[] args) { dynamic dyn = new DynamicClass(); dyn.name = "a"; dyn.aa = new Func<string,string>(r => r); dyn.name = "b"; Console.WriteLine(dyn.name+"|"+ dyn.aa("b")); //输出:b|b Console.ReadKey(); } } }
相关文章推荐
- mybatis自定义动态sql传入对象
- 怎样调用动态获取的自定义对象的方法
- JavaScript之面向对象学习七(动态原型模式、寄生构造函数模式、稳妥构造函数模式创建自定义类型)
- java动态代理对象实现日志的拦截(annotation自定义注解方式)
- 怎样调用动态获取的自定义对象的方法
- 通过反射动态实例化对象中出现的一个奇怪问题
- XML 对象反序列化也动态编译?
- C++Builder编程中动态更改自定义打印纸张
- 自定义Visual Studio .NET 2003的Start Page,动态读取cnBlogs.Com的最新.NET随笔
- SQL Server数据对象结构的动态建立与访问
- 利用反射动态创建对象
- 利用 自定义attribute 来记录跟对象本省无关的信息。
- JScript String 对象自定义方法
- 使用反映实现前端WEB窗口控件与后台数据库类对象的动态绑定
- 两种动态创建对象的方法
- 动态2:由类名创建对象
- 数据绑定到自定义的对象
- XML 对象反序列化也动态编译?
- 一组动态菜单的自定义标签
- .net中实现运行时从字符串动态创建对象