class SimpleExpando
{
static void Main()//用ExpandoObject 存储和获取值
{
dynamic expando = new ExpandoObject();
//{System.Dynamic.ExpandoObject}
IDictionary<string, object> 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<string,object>。(它实现的其他接口均为IDictionary<string,object)
所扩展的接口。) 它是封闭的,所以不能继承它从而实现有用的行为。只有用dynamic
引用或实现某个接口时,才能使用ExpandoObject
设置或获取单独的属性
实现字典接口暗示了它的用途--通过名称存储对象。而这些名称也可以用作动态类型的属性。
将字符串作为字典的值。
输出
value set dynamically
value set with dictionary