是否可以使用属性在属性更改时自动引发事件

Ed *_*kes 4 .net c# data-binding events attributes

我发现自己编写了很多代码:

    private int _operationalPlan;
    public int OperationalPlan
    {
        get
        {
            return _operationalPlan;
        }
        set
        {
            _operationalPlan = value;
            RaisePropertyChanged();
        }
    }

    private void RaisePropertyChanged()
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new
                                      PropertyChangedEventArgs("PlansSelected"));
        }
    }
Run Code Online (Sandbox Code Playgroud)

我想知道是否有可能编写一个可以添加到属性中的属性来自动引发事件.就是这样的:

[RaiseOnSet("ProperyChanged", "PropertyChangedEventArgs", "PlansSelected")]
public int OperationalPlan
{
    get
    {
        return _operationalPlan;
    }
    set
    {
        _operationalPlan = value;
        RaisePropertyChanged();
    }
}
Run Code Online (Sandbox Code Playgroud)

在我去尝试实现这一点之前,我想知道:

  • 这个工具是否在.net框架中
  • 有没有人试过这个设施
  • 如果它是可能的
  • 如果有任何死胡同我应该避免

Phi*_*ert 5

要做到这一点,你需要一个.NET的AOP框架,比如PostSharpAOP.NET