我想在访问它之前在动态Object中创建一个属性。 例如,有一个对象X.一个非现有属性“SomeProperty”在X上访问如下,
var testProperty = X.SomeProperty;
我想在访问时创建X.SomeProperty。 是否有可能在C#动态?
答案 0 :(得分:3)
public class X : DynamicObject
{
Dictionary<string, object> dictionary = new Dictionary<string, object>();
public override bool TryGetMember(
GetMemberBinder binder, out object result)
{
string name = binder.Name.ToLower();
return dictionary.TryGetValue(name, out result);
}
public override bool TrySetMember(SetMemberBinder binder, object value)
{
dictionary[binder.Name.ToLower()] = value;
return true;
}
}
dynamic obj = new X();
obj.SomeProperty = "Test";
Console.WriteLine(obj.SomeProperty);