1

アクセスされる直前に、プロパティを動的オブジェクトに作成したいと考えています。たとえば、オブジェクト X があるとします。存在しないプロパティ「SomeProperty」は、次のように X でアクセスされます。

var testProperty = X.SomeProperty;

アクセス中に X.SomeProperty を作成したい。C#ダイナミクスで可能ですか?

4

1 に答える 1

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);
于 2012-07-12T09:46:58.800 に答える