INotifyPropertyChanged 支持
INotifyPropertyChanged 接口在 .NET 应用程序中被广泛使用,用于在属性值发生更改时发送通知。 ReSharper 提供了一组功能,帮助您实现此接口。
ReSharper 帮助为以下框架实现属性更改通知:
MVVM Light(WPF、Silverlight、Windows Phone、通用应用)
Caliburn.Micro(WPF、Silverlight、Windows Phone、通用应用)
Prism(WPF;Silverlight、Windows Phone)
Catel(WPF、Silverlight、Windows Phone、WinRT、ASP.NET MVC)
MVVMHelpers(WPF 3 和 4,仅支持 lambda 表达式)
Avalonia
首先,ReSharper 检测到正在使用 INotifyPropertyChanged 接口,并提供一个特殊的快速修复以放置所需的实现。

应用快速修复后,ReSharper 会生成一个用于属性更改通知的方法,并提示您为此方法提供一个名称。

如上图所示,生成的方法被标记为 [NotifyPropertyChangedInvocator] 属性 ,这使得 INotifyPropertyChanged 接口得到了全面支持,包括为属性添加更改通知、验证和完成字符串字面量中的属性名称、导航到属性、重构和代码生成的支持。 建议在生成实现之前, 向项目添加 ReSharper 注解属性。
如果您的类中有一些属性未通知更改,您可以使用相应的 上下文操作 (仅当通知方法用 [NotifyPropertyChangedInvocator] 属性装饰时可用)轻松将它们转换为具有更改通知的属性:

当您为现有字段生成属性时,如果有一个用 [NotifyPropertyChangedInvocator] 属性装饰的方法,您可以在 生成 对话框中选择 在属性更改时通知 复选框,以获取具有更改通知的属性:

此外,ReSharper 为传递给 OnPropertyChanged 方法的参数提供了 代码检查 和 代码补全。
ReSharper 在 .NET Framework 4.5 项目中实现 INotifyPropertyChanged 时利用了 Caller Info 属性。 它还通过突出显示冗余参数并建议 快速修复 ,帮助迁移到基于 CallerMemberName 的实现。
