深入理解 c# 第十四章 用ExpandoObject存储和获取值

    class SimpleExpando
    {
        static void Main()//用ExpandoObject 存储和获取值
        {
            dynamic expando = new ExpandoObject();
			//{System.Dynamic.ExpandoObject}
            IDictionary dictionary = expando;
			//{System.Dynamic.ExpandoObject}
            expando.First = "value set dynamically";
            Console.WriteLine(dictionary["First"]);

            dictionary["Second"] = "value set with dictionary";
            Console.WriteLine(expando.Second);
        }
    }


使用ExpandoObject
  System.Dynamic.ExpandoObject看上去像个古怪的野兽。它只有一个无参的公共构造
函数。除了各个接口的显式实现外,它没有公共方法。比较重要的接口为IDynamicMetaObject
Provider和IDictionary。(它实现的其他接口均为IDictionary所扩展的接口。)  它是封闭的,所以不能继承它从而实现有用的行为。只有用dynamic
引用或实现某个接口时,才能使用ExpandoObject
设置或获取单独的属性
  实现字典接口暗示了它的用途--通过名称存储对象。而这些名称也可以用作动态类型的属性。
  将字符串作为字典的值。  




输出
value set dynamically
value set with dictionary

你可能感兴趣的:(深入理解 c# 第十四章 用ExpandoObject存储和获取值)