【问题标题】:Using an Attribute to raise an event使用属性引发事件
【发布时间】:2010-12-30 21:22:20
【问题描述】:

我想简化一些代码。 代码如下:

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

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

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

如何做到这一点?还是可以使用属性来完成?

【问题讨论】:

标签: c# attributes


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    PostSharp 将允许您定义在编译期间将使用代码模板“充实”的属性。他们的网站有几个示例,他们即将发布的主要版本将大大简化针对这些类型场景的工具的使用。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多