如何创建fxcop规则来检查一个类在另一个类的构造函数中调用init?

时间:2011-04-24 07:16:27

标签: c# .net visual-studio fxcop

假设我有类A实例化类B.类B有一个构造函数和几个init方法(通过类接口强制执行)。如何编写fxcop规则以检查在实例化B之后是否至少调用了一个init方法。

如果你在运行时从互联网上加载它,你就不能使用构造函数,所以init。

1 个答案:

答案 0 :(得分:1)

除了最琐碎的案例外,这种规则几乎不可能写出来。例如,如果要确保在调用B构造函数后立即调用B init方法,则可以相对容易地完成(尽管分支逻辑甚至可能导致问题)。但是,如果只需要支持这种微不足道的用法,就不需要单独的init方法。检测通常更有趣的是在调用其init方法之前尝试使用B实例执行其他操作的情况,并且这对于像FxCop这样的静态验证器来说并不是真正的工作。

如果在进入另一个方法时没有初始化它,你是否考虑过从B中抛出一个异常(就像有人可能从已处理的实例抛出一个ObjectDisposedException)?