0

1 つの自動 get/set プロパティを持つ通常の C# クラスがあるとします。

public class Entity
{
       public String SomeProperty {get;set;}

}

SomeProperty の set メソッドが呼び出されたときに発生し、評価できるイベントはありますか?

このようなことは何らかの方法で可能ですか?おそらく反射ですか?:

疑似コード、実コードなし:

Entity e = new Entity();
e.SomeProperty.SetterCalled += OnSetterCalled;

private void OnSetterCalled(Sender propertyinfo)
{
    propertyinfo pi = propertyinfo;
    Console.Write (pi.Name);
}

CallerMember を使用できることはわかっていますが、auto プロパティを変更する必要がありました。

4

2 に答える 2

3

いいえ、これを行う方法はありません。

セッターはこれだけです:

_backingVariable = value;

割り当ては、本質的にどのメソッドも呼び出しません。現状では、自動プロパティを利用してプロパティ セット中にイベントを発生させる方法はありません。

https://stackoverflow.com/a/18002490/1783619で説明されている手法のようなものを使用して、コンパイル時にコードを変更できます。

しかし、そうでなければ、これを行う方法はありません。

于 2014-12-04T23:26:58.633 に答える