Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建生成编译器错误的C#代码分析规则_C#_Compiler Construction_Code Analysis - Fatal编程技术网

创建生成编译器错误的C#代码分析规则

创建生成编译器错误的C#代码分析规则,c#,compiler-construction,code-analysis,C#,Compiler Construction,Code Analysis,有时,我会在.NET framework中遇到恼人的bug,编译器在编译时和运行时都无法清楚指出这些bug 它指出,如果您在Global.asax.cs的应用程序启动中手动连接mvcapapplication.BeginRequest,您将在System.Web.HttpRuntime.ProcessRequestNotificationPrivate中获得NullReferenceException 由于没有明确的方法将错误与原因联系起来,因此最好能够编写这样的内容,即如果从mvcapappl

有时,我会在.NET framework中遇到恼人的bug,编译器在编译时和运行时都无法清楚指出这些bug

它指出,如果您在Global.asax.cs的
应用程序启动中手动连接
mvcapapplication.BeginRequest
,您将在
System.Web.HttpRuntime.ProcessRequestNotificationPrivate
中获得
NullReferenceException


由于没有明确的方法将错误与原因联系起来,因此最好能够编写这样的内容,即如果从
mvcapapplication.Application\u Start
连接event
mvcapapplication.BeginRequest
,抛出编译时错误,强制您删除它并解释原因。

您可以实现一个自定义FxCop规则,该规则检查处理程序是否按照您所说的那样连接,并将该规则包括在代码分析规则集中。看看规则,它做的事情与你想要实现的事情相似


有关实现自定义FxCop规则的信息,请参阅。

如果MS将其作为CA2001规则添加到编译器中,那将是非常棒的,但我不认为自己可以在这里编写一个。我可以调查FxCop,但你确定这个具体案例是可能的吗?这似乎很难定义?任何指向执行类似操作的FxCop规则的指针都将受到重视(尝试搜索,但无法找到此类规则)。我只编写了简单的FxCop规则,但我认为这应该是可能的。许多标准规则非常复杂(例如检查IDisposable是否正确实现)。尝试在默认规则程序集上使用反编译器。这应该会给你一些如何实施规则的想法。