刚刚注意到4.2.30版本不包括
protected bool Set<T>(
ref T field,
T newValue,
[CallerMemberName] string propertyName = null)
{
return Set(propertyName, ref field, newValue);
}
由于编译常量“CMNATTR”在发布模式下未定义为BUILD参数。 任何想法,如果它是错误的或故意的?
谢谢。
答案 0 :(得分:2)
我今天偶然发现了这一点,并且还希望将[CallerMemberName]与MVVMLight提供的一些方法结合使用。洛朗给了answer earlier on this issue,但似乎他没有时间来解决这个问题。因此,一种选择是下载源,设置符号并在发布模式下重建。我自己没试过,我不确定这是否会产生其他影响。
现在的另一个解决方法是扩展ViewModelBase,只需使用[CallerMemberName]添加所需方法的变体。例如。在你的情况下:
public class ViewModelBaseCustom : ViewModelBase
{
public bool Set<T>(ref T field, T value, [CallerMemberName] string propertyName = "")
{
return this.Set(propertyName, ref field, value);
}
}
然后使用Laurent原创的自定义版本,直到MVVMLight更新为止。