繁体   English   中英

是否可以评估调用set属性的事件?

[英]Is it possible, to evaluate the event of calling a set property?

假设我们有一个带有一个自动获取/设置属性的普通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属性。

不,没有办法做到这一点。

设置者就是这样:

_backingVariable = value;

分配不会固有地调用任何方法。 就目前而言,在利用自动属性进行属性设置期间无法引发事件。

您可以使用类似https://stackoverflow.com/a/18002490/1783619中所述的技术在编译时更改代码。

但是否则,将无法执行此操作。

我建议您调查:

INotifyPropertyChanged

这是一个很棒的演练:

实现INotifyPropertyChanged-是否存在更好的方法?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM