Resharpers从属性“操作菜单”中提供了非常方便的功能To property with change notification
,用于将自动属性代码转换为一个显式调用类似SetProperty的方法。
但是,当前(自版本2018.1.4起)还不太方便。
事实是,要使该东西正常工作,我要在其中定义属性的类必须具有用[NotifyPropertyChangedInvocator]
注释的显式方法。
[NotifyPropertyChangedInvocator]
protected override bool SetProperty<T>(ref T storage, T value, string propertyName = null)
{
return base.SetProperty(ref storage, value, propertyName);
}
在我的代码中,我通常使用已经实现的INotifyPropertyChanged类,例如MvvmCross的MvxViewModel。
因此,这是一个额外的(空)步骤,这使我的代码更加复杂,降低了性能,并使二进制文件不断增长。 (当然,这并不是至关重要的,但是它只是为了开发方便而不是任何功能都包含在内)。
public class IdentificationModel : MvxViewModel
{
public string UserName { get; set; }
}
因此,是否可以在Resharper设置中(或其他任何地方)定义默认方法,Resharper可以使用该默认方法在已经实现INotifyPropertyChanged的类上自动执行此类转换?
PS 。看来as it discussed here是一个时间已久的已知问题,所以如果仍然没有解决这种情况的解决方案,请在此徘徊。