我在服务层有接口,有几个方法,从Get和FxCop的Use属性开始,适当的规则抱怨我应该考虑使用属性.
我尝试使用SuppressMessageAttribute,但是当它在接口上定义时,它对成员方法没有影响.我是否需要将SuppressMessageAttribute放到每个方法中,还是有办法抑制整个类型的CA1024?
[SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate"]
public interface IProjectService
{
// Information and statistics about projects
IList<ProjectInfo> GetProjects();
ProjectsDashboard GetProjectsDashboard();
// Project's settings
ProjectSettings GetProjectSettings(Guid id);
void SaveProjectSettings(ProjectSettings settings);
}
Run Code Online (Sandbox Code Playgroud) PMD在Sun Security规则集中有一个名为ArrayIsStoredDirectly的规则:
接收数组的构造函数和方法应克隆对象并存储副本.这可以防止用户将来的更改影响内部功能.
这是他们的例子:
public class Foo {
private String [] x;
public void foo (String [] param) {
// Don't do this, make a copy of the array at least
this.x=param;
}
}
Run Code Online (Sandbox Code Playgroud)
我不认为我完全理解这条规则背后的原因.是因为传递的数组中的值可以在其他地方更改吗?传递Collection与传递数组有什么不同?
有没有人对汇编文件分析工具有任何建议?我试图在传递-S选项时分析LLVM(或GCC)生成的ARM/Thumb-2 ASM文件.我对基本块级别的指令统计特别感兴趣,例如内存操作计数等.我可能最终在Python中使用我自己的工具,但很想知道在我开始之前是否有任何现有工具.
更新:我已经做了一些搜索,发现拆卸工具/十六进制编辑器的/ etc一个很好的资源在这里,但不幸的是它主要集中在x86汇编,也没有包括任何实际的汇编文件分析器.
我最近在TeamCity花了很多时间,重复查找器和FxCop构建跑步者非常棒.我还在StyleCop的项目中有了构建目标,因此违反了这些规则,我已经集成了NDepend,它产生了一些很好的指标.
人们还有哪些其他工具可以与TeamCity成功集成?有很多可以集成到IDE中或在本地运行(如本问题中所述),如ReSharper,但显然要在构建服务器上运行,它需要能够无人值守地执行并生成可在构建报告中浮出水面的工件.到目前为止我可能错过了什么选择?
每当我用一种方法调用我的记录器时,例如
_logger.Debug("Connecting to database...");
Run Code Online (Sandbox Code Playgroud)
我收到警告:
CA1303 : Microsoft.Globalization:
Method 'Database.Connect()' passes a literal
string as parameter 'message' of a call to 'ILogger.Debug(string)'.
Retrieve the following string(s) from a resource table instead:
"Connecting to database...".
Run Code Online (Sandbox Code Playgroud)
有没有办法在每次使用函数时抑制此警告ILogger?我真的不想在我使用它的每种方法中压制它.
PHP中有没有办法进行静态代码分析并检测对register_globals主动性的依赖?手动检查文件并查找尚未初始化的变量并从中推断可能依赖于它的变量相对简单,但我需要为数百个脚本执行此操作,因此我正在寻找自动化解决方案.
我的最后一招是设置开发环境,关闭指令并严格报告错误并让QA玩了很长时间,然后修复错误日志捕获的实例,但不能保证找到100%的情况如果存在自动化解决方案,当然也不能很好地利用资源.
我得到的代码分析警告似乎是假阳性.
__CODE__
我如何摆脱这个警告?除非我确定无法避免警告,否则我宁愿不抑制警告.
这些类看起来像这样:
namespace Some.Namespace
{
public class MyClass
{
private class MyPrivateClass
{
public int Id { get; set; }
public ModelObject { get; set; }
}
}
}
Run Code Online (Sandbox Code Playgroud)
我这样使用它:
private IQueryable<MyPrivateClass> GetMyPrivateClasses()
{
return this.Repository().All()
.Select(m => new MyPrivateClass { Id = m.Id, ModelObject = m };
}
Run Code Online (Sandbox Code Playgroud)
这种用法不算作实例化吗?
在过去一年左右的时间里,我一直在使用Net Beans 8进行PHP开发,并发现(自更新到8.0并生成新项目)代码分析器检测到我们使用的一些免费库中的错误,导致项目被标记为有错误(项目浏览器上的红色感叹号).
由于我们没有保留这些库,我将它们添加到我当前项目的项目属性 - >忽略文件夹 - >代码分析的额外文件夹设置中(我不想将它们从项目中排除,因为我们使用自动完成/ IDE的intellisense功能,但这没有明显的效果:文件仍被标记为有错误,以及项目.
我错误地使用了代码分析器排除功能吗?有没有办法让所选文件夹从错误检查中排除,但仍然可以在项目中看到它们?
谢谢!
我想为我的dotnet核心项目添加代码分析(FxCop,而不是StyleCop),它的目标是netcoreapp1.1框架.我知道FxCop是在MSBuild中构建的,但是当我启用它时,我不断收到错误:
1> MSBUILD:错误:CA0055:无法识别'C:\ Dev\easycube\EasyCube.Authentication\bin\Debug \netcoreapp1.1\EasyCube.Authentication.dll'的平台.1> MSBUILD:错误:CA0052:未选择任何目标.
然后我发现有针对dotnet核心分析器Microsoft.NetCore.Analyzers的Nuget包,但我不知道如何使用它.有谁知道如何在项目上进行设置?
谢谢.
msbuild code-analysis .net-core asp.net-core visual-studio-2017
构建我正在开发的应用程序需要花费很多时间.它是我工作过的最大的一个.我试图调整gradle设置,这有帮助,但仍然构建很慢.
由于应用程序是在没有模块的情况下构建的,它只是一大堆软件包,现在我想知道如何"提取"它们中的一些并将它们放入单独的模块中.AFAIK模块不应该依赖于app模块,所以我想知道是否有一种工具或技术可以让我分析代码并帮助我找到正确的包来提取,因为它是很多代码.
你会如何解决我的问题?
code-analysis ×10
.net ×2
c# ×2
php ×2
.net-core ×1
android ×1
asp.net-core ×1
assembly ×1
fxcop ×1
gcc ×1
gradle ×1
java ×1
llvm ×1
msbuild ×1
netbeans-8 ×1
pmd ×1
security ×1
suppression ×1
teamcity ×1