使用Attribute来引发事件

时间:2009-12-29 19:26:19

标签: c# attributes

我想要简化一些代码。 这是代码:

private int id;
public int Id
{
    get { return id; }
    set
    {
        id = value;
        base.OnPropertyChanged("Id");
    }
}

我在考虑使用属性来获取:

[RaiseOnPropertyChanged()]
public int Id { get; set; }

怎么办?或者可以使用属性来完成吗?

3 个答案:

答案 0 :(得分:5)

唉,你不能在C#本身的范围内做到这一点;你需要操纵IL级别的东西来获得你想要的东西。但是,您可以使用 PostSharp 提供的面向方面的技术来获得所需的结果。

答案 1 :(得分:2)

您可以探索的最佳选择是使用PostSharp等框架进行面向方面编程。

PostSharp将允许您在编译期间使用代码模板定义将“充实”的属性。他们的网站有几个例子,他们即将发布的主要版本将极大地简化这种工具的使用方式。

答案 2 :(得分:2)

您可以使用PostSharp动态实现INotifyPropertyChanged接口。