次のように、コンパイラ サービスを使用して、メソッドの呼び出し元を取得したり、プロパティ名の変更を取得したりするのは非常に簡単です。
public class EmployeeVM:INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged([CallerMemberName] string propertyName=null)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
private string _name;
public string Name
{
get { return _name; }
set
{
_name = value;
// The compiler converts the above line to:
// RaisePropertyChanged ("Name");
}
}
private string _phone;
public string Phone
{
get { return _phone; }
set
{
_phone = value;
OnPropertyChanged();
// The compiler converts the above line to:
// RaisePropertyChanged ("Phone");
}
}
}
しかし、セット自体の内部から「セット」関数の呼び出し元を取得することは可能ですか? そのスコープで構文的にどのように定義するかわかりません。別名、Phone= を呼び出しているのは誰ですか?