创建生成编译器错误的C#代码分析规则
有时,我会在.NET framework中遇到恼人的bug,编译器在编译时和运行时都无法清楚指出这些bug 它指出,如果您在Global.asax.cs的创建生成编译器错误的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
应用程序启动中手动连接mvcapapplication.BeginRequest
,您将在System.Web.HttpRuntime.ProcessRequestNotificationPrivate
中获得NullReferenceException
由于没有明确的方法将错误与原因联系起来,因此最好能够编写这样的内容,即如果从mvcapapplication.Application\u Start
连接eventmvcapapplication.BeginRequest
,抛出编译时错误,强制您删除它并解释原因。您可以实现一个自定义FxCop规则,该规则检查处理程序是否按照您所说的那样连接,并将该规则包括在代码分析规则集中。看看规则,它做的事情与你想要实现的事情相似
有关实现自定义FxCop规则的信息,请参阅。如果MS将其作为CA2001规则添加到编译器中,那将是非常棒的,但我不认为自己可以在这里编写一个。我可以调查FxCop,但你确定这个具体案例是可能的吗?这似乎很难定义?任何指向执行类似操作的FxCop规则的指针都将受到重视(尝试搜索,但无法找到此类规则)。我只编写了简单的FxCop规则,但我认为这应该是可能的。许多标准规则非常复杂(例如检查IDisposable是否正确实现)。尝试在默认规则程序集上使用反编译器。这应该会给你一些如何实施规则的想法。