我正在编写以下形式的Web Api类:
public class PartController : ApiController
{
private ILogService _logService;
private IPartSerive _partService;
private const string className = "My.Long.Full.ClassPath.PartController";
...
[HttpGet]
public Part GetPart(int partId)
{
_logService.Log(className, DateTime.Now, etc...);
return _partService.GetPart(partId);
}
}
为了保持我的代码可读性和简短性,我已经定义了一个传递给我的日志服务的常量字符串值。
但是,我收到编译器警告:
字段' PartController.className'已分配但其值从未使用过。
显然,我在这里使用了这个值。奇怪的是,在我的MVC课程中,我没有看到警告。
任何人都可以推荐针对此类情景的最佳做法或来抑制这些警告吗?
答案 0 :(得分:1)
有几种方法可以抑制警告。
首先,正如Jimenemex强调的那样,有
#pragma warning disable 0169
private const string className = "My.Long.Full.ClassPath.PartController";
#pragma warning restore 0169
还有一个suppression attribute,由于性能的原因,不建议在发布代码中进行大量抑制。
[SuppressMessage("Microsoft.Design", "CA1039:ListsAreStrongTyped")]
您还可以创建一个cs文件来保存抑制属性,然后创建具有属性属性的抑制
[module: SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "namespace", Target = "MyNamespace")]
答案 1 :(得分:1)
好的,找到了解决方案。出于某种原因,这是一个Visual Studio错误。可以通过重新启动Visual Studio来修复它。
答案 2 :(得分:0)
要取消警告,请在className
声明周围添加此警告。这个list有一堆警告可以抑制那个是不是那个。警告编号也应位于警告旁边的输出窗口中。
#pragma warning disable 0169, 414, 0219 // I forgot which one it is.
private const string className = "My.Long.Full.ClassPath.PartController";
#pragma warning restore 0169, 414, 0219
我认为您也可以通过public
来解决它,但我不确定。