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/

  • 相关阅读:
    Layui数据表格的使用
    单选按钮和下拉框默认选中
    平方探测法处理散列函数冲突
    ssh框架整合笔记---配置文件
    第二十九个知识点:什么是UF-CMA数字签名的定义?
    第二十八个知识点:什么是公钥密码学的IND-CCA安全定义?
    第二十七个知识点:什么是对称密码加密的AEAD安全定义?
    第二十六个知识点:描述NAF标量乘法算法
    第二十五个知识点:使用特殊的素数定义$GF(p)$和$GF(2^n)$的方法。
    第二十四个知识点:描述一个二进制m组的滑动窗口指数算法
  • 原文地址:https://www.cnblogs.com/zcm123/p/6072982.html
Copyright © 2011-2022 走看看