C#DynamicObject和ExpandoObject
2017-04-22 21:55
357 查看
class Program
{
static void Main(string[] args)
{
//dynamic v = new ExpandoObject();
//v.Name = "123";
//v.Value = "456";
dynamic v = new TestClass();
v.Name = "Name";
v.Value = "Value";
Console.WriteLine(v.Name);
Console.ReadLine();
}
}
public class TestClass:DynamicObject
{
private Dictionary<string, object> _dynamicData = new Dictionary<string, object>();
public override bool TryGetMember(GetMemberBinder binder, out object result)
{
result = null;
if(_dynamicData.Keys.Contains(binder.Name))
{
result = _dynamicData[binder.Name];
return true;
}
return false;
}
public override bool TrySetMember(SetMemberBinder binder, object value)
{
if(_dynamicData.Keys.Contains(binder.Name))
{
_dynamicData[binder.Name] = value;
}
else
{
_dynamicData.Add(binder.Name, value);
}
return true;
}
}
{
static void Main(string[] args)
{
//dynamic v = new ExpandoObject();
//v.Name = "123";
//v.Value = "456";
dynamic v = new TestClass();
v.Name = "Name";
v.Value = "Value";
Console.WriteLine(v.Name);
Console.ReadLine();
}
}
public class TestClass:DynamicObject
{
private Dictionary<string, object> _dynamicData = new Dictionary<string, object>();
public override bool TryGetMember(GetMemberBinder binder, out object result)
{
result = null;
if(_dynamicData.Keys.Contains(binder.Name))
{
result = _dynamicData[binder.Name];
return true;
}
return false;
}
public override bool TrySetMember(SetMemberBinder binder, object value)
{
if(_dynamicData.Keys.Contains(binder.Name))
{
_dynamicData[binder.Name] = value;
}
else
{
_dynamicData.Add(binder.Name, value);
}
return true;
}
}
相关文章推荐
- C#DynamicObject和ExpandoObject用法
- 基于Visual Studio2010与C#4.0新功能和展望--dynamic:用DynamicObject创建包装器
- C#一些新特性Object,var,dynamic,asynchronous
- C# json to dynamic object
- C# Dynamic Var Object 学习
- c# dynamic,maybe I should say it is just some shortcut for "Object", box and unbox, without the cast
- C# 4.0 特性: dynamic 和 ExpandoObject
- 理解C# 4 dynamic(2) – ExpandoObject的使用
- [转]理解C# 4 dynamic(1) - var, object, dynamic的区别以及dynamic的使用
- C#新特性, dynamic, ExpandObject
- 理解C# 4 dynamic(1) - var, object, dynamic的区别以及dynamic的使用
- C# DynamicObject And ExpandoObject
- C# Dynamic之:ExpandoObject,DynamicObject,DynamicMetaOb的应用(上)
- 浅谈Dynamic 关键字系列之三:ExpandoObject, DynamicObject, DynamicMetaObject
- 理解C# 4 dynamic(1) - var, object, dynamic的区别以及dynamic的使用
- C#4.0中的dynamic关键字和ExpandoObject对象
- [c#]object&var&dynamic的区别[转]
- 理解C# 4 dynamic(1) - var, object, dynamic的区别以及dynamic的使用
- C# - DynamicObject with Dynamic
- 理解C# 4 dynamic(2) – ExpandoObject的使用