Dev*_*ave 2 c# stylecop suppressmessage
我有一个方法来处理大量的文件类型:
case ".jpg":
res = "image/jpeg";
break;
case ".pdf":
res = "application/pdf";
break;
case ".doc":
res = "application/msword";
break;
Run Code Online (Sandbox Code Playgroud)
..这持续了几百行.我遇到了StyleCop错误:SP2101: Method body must not contain more than 120 code lines
我四处搜寻,找不到任何东西,更不用说压制了.有谁知道如何压制这条消息?
编辑:我认为这是一个StyleCop+错误,使用FxCop程序复制抑制无法解决.
你可以将它重构为Dictionary<string,string>:
var mimeTypesPerFileType = new Dictionary<string,string>();
mimeTypesPerFileType.Add(".jpg", "image/jpeg");
mimeTypesPerFileType.Add(".pdf", "application/pdf");
...
Run Code Online (Sandbox Code Playgroud)
这会将方法中的行数减少大约三分之一(尽管这可能是在一个单独的方法/字段中,因此您不需要每次都重新填充字典).
然后该方法只是改为:
return mimeTypesPerFileType[fileType];
Run Code Online (Sandbox Code Playgroud)
更新:
看到你有大约400个奇怪的情况(方法中大约1300行),你真的应该从文件或数据库加载这个地图.这肯定会减少行数.
我是StyleCop +的作者.
它添加到原始StyleCop功能的规则之一是SP2101(MethodMustNotContainMoreLinesThan),它检查方法的大小.
像任何其他StyleCop警告一样,它可能是:
而且,它是可配置的.如果要使用此规则,可以为自己的配置添加任意数字而不是120.120只是默认值.
这条规则的要点是可维护性.检查您是否属于意大利面条代码可能非常重要.StyleCop只是一个让你能够控制它的工具.StyleCop +提供了更多要检查的规则.所以如果你想使用它们 - 继续吧.如果你不这样做 - 只需禁用它.它是一种在使用之前真正需要配置的工具.
如果您需要任何配置帮助,请与我们联系.