C# Visual Studio 2013 抑制“类从未实例化”

Ori*_*ael 2 c# suppress-warnings

我有一个接受 HttpPost 通信的 Web api 项目。

控制器的方法始终接受单个经过验证的对象。

例如:

public sealed class NumbersRequest
{
    [NumberOne]
    public string Number1 { get; set; }

    [NumberTwo]
    public string Number2 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

由于我从未声明过NumbersRequest req = new NumbersRequest()并且它们仅充当请求对象,因此我得到了

类永远不会被实例化

我怎样才能抑制警告?(它更像是绿色下划线..)也许是带有注释的东西?

谢谢。

ang*_*son 6

这看起来像是 ReSharper 警告,因此您可以要求 ReSharper 对这些事情保持沉默。

您可以将 ReSharper 配置为停止抱怨这一点,只需在有问题的波浪线上按 Alt+Enter,然后使用通常允许您配置检查严重性的底部菜单项即可。

您可以选择将其保存在全局设置中,这意味着它将影响您从现在开始打开的每个项目,或者您可以将其保存到团队共享的设置文件中,然后您可以将其与项目一起签入源代码管理,以使它只适用于这一个解决方案。

现在,如果您想保留整体警告,但要求它停止抱怨一种或多种特定类型、方法、属性等,您可以使用 ReSharper 提供的属性。

您可以通过多种方式将这些属性引入到您的项目中:

  1. 添加对Nuget包“JetBrains ReSharper注释”的引用
  2. 使用 ReSharper 的选项对话框并找到允许您将这些属性的源副本抓取到剪贴板上的页面,然后只需将其粘贴到项目中的文件中即可。
  3. 仅定义您想要的一两个属性,即使是在您自己的命名空间中(然后您必须告知 ReSharper)

推荐的方式是选项1,使用nuget包。

假设您现在拥有可用的属性,您可以使用PublicAPIAttributeUsedImplicitlyAttribute.

任何一种都足够,但它们可能具有不同的含义。由于您要标记正在向客户端传输或从客户端传输的对象,因此我会选择第PublicAPIAttribute一个。


既然您在评论中说这PublicAPIAttribute不起作用,但UsedImplicitlyAttribute后来确实起作用了,我想它们确实有不同的含义。