1. class Test : System.Dynamic.DynamicObject
  2. {
  3. public override bool TryGetMember(System.Dynamic.GetMemberBinder binder, out object result)
  4. {
  5. if (map != null)
  6. {
  7. string name = binder.Name;
  8. object value;
  9. if (map.TryGetValue(name, out value))
  10. {
  11. result = value;
  12. return true;
  13. }
  14. }
  15. return base.TryGetMember(binder, out result);
  16. }
  17. System.Collections.Generic.Dictionary<string, object> map;
  18. public override bool TryInvokeMember(System.Dynamic.InvokeMemberBinder binder, object[] args, out object result)
  19. {
  20. if (binder.Name == "set" && binder.CallInfo.ArgumentCount == 2)
  21. {
  22. string name = args[0] as string;
  23. if (name == null)
  24. {
  25. //throw new ArgumentException("name");
  26. result = null;
  27. return false;
  28. }
  29. if (map == null)
  30. {
  31. map = new System.Collections.Generic.Dictionary<string, object>();
  32. }
  33. object value = args[1];
  34. map.Add(name, value);
  35. result = value;
  36. return true;
  37. }
  38. return base.TryInvokeMember(binder, args, out result);
  39. }
  40. }
  41. static void Main(string[] args)
  42. {
  43. dynamic t = new Test();
  44. string @a = "gg";
  45. t.set(@a,"galrj");
  46. Console.WriteLine(t.gg);
  47. }

http://blog.csdn.net/cqims21/article/details/17613733

https://q.cnblogs.com/q/15970/

.net dynamic动态加属性的更多相关文章

  1. C#4.0使用dynamic 动态添加属性

    最近做一个项目,用wpf mvvm实现,而前台表格需要根据数据库某表的设置不同生成不同的列名.过去用winform和Ado.net实现这种功能的时候就只需要拼装DataTable,拼成最后需要的表格, ...

  2. 使用dynamic动态设置属性值与反射设置属性值性能对比

    static void Main(string[] args) { int times = 1000000; string value = "Dynamic VS Reflection&qu ...

  3. Java动态加载属性文件.properties

    当我们使用如下语句加载.properties时: ClassLoader classLoader = this.getClass().getClassLoader(); Properties prop ...

  4. 动态加载JS脚本

    建立dynamic.js文件,表示动态加载的js文件,里面的内容为: function dynamicJS() { alert("加载完毕"); } 如下方法中的html页面和dy ...

  5. OC 动态类型,动态绑定,动态加载

    OC 动态类型,动态绑定,动态加载 Objective-C具有相当多的动态特性,基本的,也是经常被提到和用到的有 动态类型(Dynamic typing) 动态绑定(Dynamic binding) ...

  6. [改善Java代码]使用forName动态加载类文件

    动态加载(Dynamic Loading)是指在程序运行时加载需要的类库文件,对Java程序来说,一般情况下,一个类文件在启动时或首次初始化时会被加载到内存中,而反射则可以在运行时再决定是否需要加载一 ...

  7. videojs 动态加载视频

    VideoJS dynamic source change via RESTful API 'Undefined' issue with changing RTMP source on compres ...

  8. 反射01 Class类的使用、动态加载类、类类型说明、获取类的信息

    0 Java反射机制 反射(Reflection)是 Java 的高级特性之一,是框架实现的基础. 0.1 定义 Java 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对 ...

  9. ExtJS 4.1 TabPanel动态加载页面并执行脚本【转】

    ExtJS 4.1 TabPanel动态加载页面并执行脚本 按照官方示例,可以动态加载页面,可是脚本不执行,于是查SDK.google,发现scripts需要设置为true,于是设置该属性,整个代码如 ...

随机推荐

  1. 注意Thread.interrupt()方法的真正作用并不是用来中断线程

      程序是很简易的.然而,在编程人员面前,多线程呈现出了一组新的难题,如果没有被恰当的解决,将导致意外的行为以及细微的.难以发现的错误.      在本篇文章中,我们针对这些难题之一:如何中断一个正在 ...

  2. Elasticsearch常用插件(三)

    elasticsearch-head 一个elasticsearch的集群管理工具,它是完全由html5编写的独立网页程序,你可以通过插件把它集成到es. 项目地址:https://github.co ...

  3. bone collector hdu 01背包问题

    Problem Description Many years ago , in Teddy’s hometown there was a man who was called “Bone Collec ...

  4. 关于oracle数据库(11)

    事务 事务是最小的工作单元,是对数据库的若干操作,增删查改(要不就都成功,要不就都失败) 在oracle数据库中,事务是默认打开的,其他数据库都需要一条语句来打开事务,默认关闭的 事务的特征 原子性. ...

  5. HTTP状态码(HTTPStatusCode)

    HTTP状态码(HTTPStatusCode) 祓焘铺 布稍酡 盛坭馆 距熏屿砥 女装出来扔了套到床上然后自己穿了套 跎徨鼻卩 权术埭 悌颞 蔹咽诹ㄒ 椿酣漂作 钱是小事关键是没有老师耸了 ...

  6. ubuntu jdk环境变量配置

    export JAVA_HOME=/usr/local/java/jdk1.8.0_25  export JRE_HOME=${JAVA_HOME}/jre  export CLASSPATH=.:$ ...

  7. 线段树解决leetcode307. Range Sum Query - Mutable

    在下面的图中,求[0,0]和[1,1]区间元素和, 对于[0,0] start =0 ,end = 0, 查到root = 4 [0-1]的节点,mid = 0, 此时mid > end-1,表 ...

  8. python学习第一天内容整理

    .cnblogs_code { width: 500px } 一.python 的历史 (摘自百度百科,了解就ok) Python[1]  (英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn ...

  9. ORACEL12c求和SUM(a+b)与SUM(a)+SUM(b)结果不一致问题

    今天在oracle12c数据库遇到的问题,下面重现一下: 1.先创建一个临时表 temp.一个数据表bitest_sum; -- Create table create table PEC.BITES ...

  10. 动态的改变标签内的src属性

    <body> <ul> <li class='on'>1</li> <li>2</li> <li>3</li& ...