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

本文关键字:是否 init 另一个 一个 构造函数 调用 创建 何创建 fxcop 规则 检查 | 更新日期: 2023-09-27 17:52:33

假设我有一个类A,它实例化了类B。类B有一个构造函数和几个初始化方法(通过类接口强制执行)。如何编写fxcop规则来检查实例化b后至少调用了一个init方法

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

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

除了最简单的情况外,几乎不可能编写这种规则。例如,如果您想确保在调用B构造函数后立即调用B init方法,这可以相对容易地做到(尽管分支逻辑即使在那里也可能导致问题)。但是,如果只需要支持这种琐碎的用法,那么就不太需要单独的init方法了。通常更有趣的是,在调用B实例的init方法之前,试图对B实例做其他事情,而这并不是像FxCop这样的静态验证器的工作。

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