アクセスされる直前に、プロパティを動的オブジェクトに作成したいと考えています。たとえば、オブジェクト X があるとします。存在しないプロパティ「SomeProperty」は、次のように X でアクセスされます。
var testProperty = X.SomeProperty;
アクセス中に X.SomeProperty を作成したい。C#ダイナミクスで可能ですか?
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);