标签: code-analysis

静态代码分析:集成到调试和发布版本中,还是只集成一个或另一个?

作为最佳实践,您是在调试和发布版本上运行代码分析,还是只运行其中一个?

code-analysis

6
推荐指数
1
解决办法
914
查看次数

如何配置StyleCop以禁止生成代码的警告?

另一个项目,Visual Studio的代码分析有这个选项.但我找不到StyleCop(AKA Source Analysis).

我想忽略的文件是dbml的.designer.cs代码,其中包含// <autogenerated>标记.一篇博文告诉我这样就足够了,但就我而言,事实并非如此.

.net code-analysis code-generation stylecop visual-studio

6
推荐指数
1
解决办法
4767
查看次数

CA:抑制生成的代码无法在VS2010 beta 2中运行的结果

我正在尝试对包含实体模型(edmx文件)的程序集运行代码分析.在项目属性中,我检查了"从生成的代码中抑制结果"选项,但是我仍然收到很多与自动生成的EF代码有关的CA错误.

有没有人经历过这个?是否有解决方法?

code-analysis entity-framework visual-studio-2010

6
推荐指数
2
解决办法
2290
查看次数

CA1034:嵌套类型不应显示

这是我试图理解的规则的解释.这是代码分析器抱怨的简化代码:

Public Class CustomerSpeed

    Public Enum ProfitTypeEnum As Integer
        NotSpecified = 0
        FlatAmount = 1
        PercentOfProfit = 2
    End Enum

    Private _ProfitTypeEnum As ProfitTypeEnum

    Public Sub New(ByVal profitType As ProfitTypeEnum)

        _ProfitTypeEnum = profitType

    End Sub

End Class
Run Code Online (Sandbox Code Playgroud)

如果枚举仅适用于类,为什么在类中使它成为包含类型是一件坏事?似乎比我更整洁......

有谁知道以下行是什么意思?:

嵌套类型包括成员可访问性的概念,一些程序员不清楚这一概念

使用命名空间对类和枚举进行分组似乎不是解决此警告的有用方法,因为我希望枚举属于与类名相同的父级.

.net vb.net code-analysis

6
推荐指数
2
解决办法
4299
查看次数

为什么Bitmap会导致规则CA2000,但Image不会?

关于VS2010可能过于严格地应用代码分析规则CA2000的事实,有很多问题,但我似乎遇到了应该应用它的情况,但事实并非如此.

请考虑以下代码:

Image srcImage = Image.FromFile(source);
Bitmap newImage = new Bitmap(newWidth, newHeight);

using (Graphics gr = Graphics.FromImage(newImage))
{
    gr.DrawImage(srcImage, new Rectangle(0, 0, newWidth, newHeight));
}
newImage.Save(destination, ImageFormat.Jpeg);
Run Code Online (Sandbox Code Playgroud)

现在,如果我在Visual Studio 2010中运行Code Analysis,它会抱怨newImage没有处理(很容易修复,把它放在另一个使用块),但是它没有抱怨srcImage(它也有Dispose()方法)我永远不会打电话).有谁知道为什么Code Analysis不会在这里抱怨?

c# dispose code-analysis visual-studio-2010

6
推荐指数
2
解决办法
274
查看次数

共享所有Resharper代码格式/检查选项

如本文所述, ReSharper的.sln.DotSettings文件仅包含那些值从默认值更改的设置.有没有办法将所有代码编辑和代码检查设置存储在团队共享层中,无论值是更改还是默认值?

我看到的唯一方法是更改​​每个值并将其切换回来(因此所有这些值最终都在.sln.DotSettings文件中),但这似乎是一项非常耗时的任务.

我试图避免的问题如下:

假设一个团队有两个开发人员,比如Jessika和John,他们认为Resharper默认使用下划线为私有字段添加前缀:

int _myPrivateField = 1;
Run Code Online (Sandbox Code Playgroud)

因此,他们不会更改"C#命名样式"部分下的" 实例字段(私有) "设置,并检入.sln.DotSettings文件.然而,当杰西卡检查她的家用笔记本电脑上的源代码时,Resharper仍然建议使用

 int myPrivateField = 1;
Run Code Online (Sandbox Code Playgroud)

因为她的计算机的设置已更改为没有前缀,保存为" 保存到此计算机 ".如Resharper的文档中所述,如果"此计算机"图层具有设置值,而其他图层则不会应用该值(请参见此图中的中间绿色设置:http://blogs.jetbrains.com /dotnet/wp-content/uploads/2012/08/layers3.png

resharper code-analysis visual-studio

6
推荐指数
1
解决办法
480
查看次数

CA1001 Visual Studio 2012代码分析警告.这是什么意思?

它并不重要,但我想弄清楚它告诉我什么,这是一个合理的警告吗?有人可以用简单的术语解释这个错误吗?

CA1001拥有一次性领域的类型应该是一次性的

在'MemVoteManager'上实现IDisposable,因为它创建了以下IDisposable类型的成员:'CongressDBEntities'.如果先前发布了"MemVoteManager",则将实现IDisposable的新成员添加到此类型将被视为对现有使用者的重大更改.

    public class MemVoteManager : AbstractDataManager, IMemVoteManager
{
    private CongressDBEntities context = new CongressDBEntities();

    public int AddMemVote(tMemVoteScore mvs)
    {
        //Insert Model
        context.tMemVoteScores.Add(mvs);
        context.SaveChanges();

        int newPK = mvs.MemVoteScoresID;

        //Update funky column ID with PK as well
        var memVoteItem = (from m in context.tMemVoteScores
                           where m.MemVoteScoresID == newPK
                           select m).SingleOrDefault();

        memVoteItem.ID = memVoteItem.MemVoteScoresID;
        context.SaveChanges();
        return newPK;
    }
Run Code Online (Sandbox Code Playgroud)

c# code-analysis idisposable

6
推荐指数
1
解决办法
8832
查看次数

阻止代码分析在Visual Studio 2012中重建项目和依赖项

将我们的解决方案升级到Visual Studio 2012后,我们希望利用新的代码分析功能.但是,运行时间太长,因为它在运行之前正在重建项目和依赖项目,即使代码没有更改也不需要重建.

如果不需要重建,有没有办法阻止它重建代码?

code-analysis visual-studio-2012

6
推荐指数
1
解决办法
1298
查看次数

静态分析可以检测内存泄漏吗?

很久以前我收到了ISTQB认证,我记得它有以下区别: -
静态分析:对源代码执行,检测无法访问的代码,未分配的值等. -
动态分析:可以检测内存泄漏等,需要执行(分析).

但是当我今天搜索时,我可以看到各种网站和提到静态分析的来源也能够检测到内存泄漏.

所以我想知道,静态分析真的有能力吗?如果是这样,那么就结果而言,动态分析之间有什么不同?

testing memory-leaks code-analysis static-analysis

6
推荐指数
2
解决办法
6169
查看次数

C# catch(FileNotFoundException) and CA1031

So this code triggers CA1031.

try
{
    // logic
}
catch (FileNotFoundException) // exception type
{
    // handle error
}
Run Code Online (Sandbox Code Playgroud)

While this one does not:

try
{
    // logic
}
catch (FileNotFoundException ex) // exception var
{
    // handle error
}
Run Code Online (Sandbox Code Playgroud)

Because the exception type is meaningful, I don't need the ex in the first example. But it's not a a general exception type. It's not IOException or Exception. So why does it still trigger the CA1031? …

c# code-analysis

6
推荐指数
1
解决办法
145
查看次数