您的位置:首页 > 移动开发 > Objective-C

C#DynamicObject和ExpandoObject用法

2017-10-12 11:19 197 查看
class Program
{
    static void Main(string[] args)
    {
        //dynamic v = new ExpandoObject();
        //v.Name = "123";
        //v.Value = "456";
        dynamic v = new MyDynamicObject();
        v.Name = "Name";
        v.Value = "Value";
        Console.WriteLine(v.Name);
        Console.ReadLine();
    }
}
public class MyDynamicObject : DynamicObject
{
// The inner dictionary.
private Dictionary<string, object> _Values = new Dictionary<string, object>();

// Getting a property.
public override bool TryGetMember(GetMemberBinder binder, out object result)
{
return _Values.TryGetValue(binder.Name, out result);
}

// Setting a property.
public override bool TrySetMember(SetMemberBinder binder, object value)
{
_Values[binder.Name] = value;
return true;
}

public string ToJson()
{
return JsonConvert.SerializeObject(_Values);
}

public Dictionary<string, object> Values
{
get { return this._Values; }
}
}
public class MyDynamicObjectCollection : IEnumerable
{
private IList _Items = new ArrayList();

public void Add(MyDynamicObject dynamicObject)
{
_Items.Add(dynamicObject.Values);
}

public string ToJson()
{
return JsonConvert.SerializeObject(_Items);
}

public IEnumerator GetEnumerator()
{
return _Items.GetEnumerator();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C# DynamicObject