MVVM的Resharper警告

Dan*_*ant 26 c# wpf resharper warnings mvvm

当我用WPF实现MVVM模式时,我发现Resharper经常警告我某些属性从未在我的ViewModels中使用过.问题是它们正在被使用,但只能由数据绑定系统使用.有没有其他人遇到过这种烦恼,有没有办法帮助Resharper意识到这些属性确实被使用了?至少,我很高兴VS 2010正确地认识到[Import]标记的成员不会"永远为空",但希望我也可以解决这个问题.

wal*_*wal 26

您可以使用外部注释来指示Resharper使用该方法,因此不会警告您.在这里看到Resharper文档

你需要装饰任何这样的方法 [UsedImplicitlyAttribute]

在使用该属性之前,您会看到:

在此输入图像描述

然后在应用属性后:

[UsedImplicitly(ImplicitUseTargetFlags.WithMembers)]
class NotUsed
{
    public int Field1 { get; set; }
    public int Field2 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)


Adr*_*tor 16

使用

<UserControl
...
xmlns:vm="clr-namespace:YourProject.ViewModels" mc:Ignorable="d"
d:DataContext="{d:DesignInstance vm:SomeClassViewModel}">
Run Code Online (Sandbox Code Playgroud)

它坚持视图模型.在View中,您可以看到模型属性,反之亦然 - 应该使用模型属性.

  • 这对我来说似乎是最好的解决方案. (2认同)

小智 6

您可以尝试两种不同的选择。

  • 选项 1:将 ReSharper 检查的严重性降低到“提示”。

  • 选项 2:使用 ReSharper 为生成您知道正在使用的警告的属性提供的“使用注释抑制检查”项。

就个人而言,我会将严重性降低到“提示”。