C# Visual Studio 2013 抑制 'Class is never instantiated'

C# Visual Studio 2013 suppress 'Class is never instantiated'

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

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

例如:

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

    [NumberTwo]
    public string Number2 { get; set; }
}

由于我从未声明 [​​=13=] 并且它们仅用作请求对象,所以我得到

class is never instantiated

如何取消警告? (它更像是绿色下划线..) 也许有注释?

谢谢。

This looks like a ReSharper warning 因此您可以要求 ReSharper 对这些事情保持沉默。

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

您可以选择将其保存在您的全局设置中,这意味着它会影响您从现在开始打开的每个项目,或者您可以将其保存到团队共享的设置文件中,然后您可以将其同时检入源代码管理您的项目,使其仅对这一个解决方案有效。

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

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

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

推荐方式为方案一,使用nuget包。

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

其中一个应该就足够了,但它们可能有不同的含义。由于您要标记正在传输到客户端或从客户端传输的对象,因此我会先使用 PublicAPIAttribute


既然你在评论中说 PublicAPIAttribute 不起作用,但 UsedImplicitlyAttribute 起作用了,那么我猜他们 do 有不同的含义。