zoukankan      html  css  js  c++  java
  • .net dynamic动态加属性

    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.   
    18.             System.Collections.Generic.Dictionary<string, object> map;  
    19.   
    20.             public override bool TryInvokeMember(System.Dynamic.InvokeMemberBinder binder, object[] args, out object result)  
    21.             {  
    22.                 if (binder.Name == "set" && binder.CallInfo.ArgumentCount == 2)  
    23.                 {  
    24.                     string name = args[0] as string;  
    25.                     if (name == null)  
    26.                     {  
    27.                         //throw new ArgumentException("name");  
    28.                         result = null;  
    29.                         return false;  
    30.                     }  
    31.                     if (map == null)  
    32.                     {  
    33.                         map = new System.Collections.Generic.Dictionary<string, object>();  
    34.                     }  
    35.                     object value = args[1];  
    36.                     map.Add(name, value);  
    37.                     result = value;  
    38.                     return true;  
    39.   
    40.                 }  
    41.                 return base.TryInvokeMember(binder, args, out result);  
    42.             }  
    43.         }  
    44.         static void Main(string[] args)  
    45.         {  
    46.             dynamic t = new Test();  
    47.             string @a = "gg";  
    48.             t.set(@a,"galrj");  
    49.             Console.WriteLine(t.gg);  
    50.         }  

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

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

  • 相关阅读:
    OC和Swift中的UITabBar和UINaviGationBar的适配 [UITabbar在IPad中的适配]
    <iOS开发>之App上架流程(2017)
    iOS--LaunchImage启动页设置及问题解决
    去掉ambiguous expansion of macro警告
    iosapp开发者账号信息管理
    开发一个 app 有多难?
    Android SDK下载安装及配置教程
    抽象类和借口的区别
    array,vertor,arraylist,hashable,hashmap等几个易混淆概念的区别
    判断Set里的元素是否重复、==、equals、hashCode方法研究-代码演示
  • 原文地址:https://www.cnblogs.com/zcm123/p/6072982.html
Copyright © 2011-2022 走看看