可靠性警告

可靠性警告支持库和应用程序的可靠性,例如,正确的内存和线程用法。

本节内容

规则

说明

CA2000:超出范围前释放对象

由于可能发生异常事件,导致对象的终结器无法运行,因此,应显式释放对象,以避免对该对象的所有引用超出范围。

CA2001:避免调用有问题的方法

某个成员调用可能存在危险或有问题的方法。

CA2002:不要锁定具有弱标识的对象

当可以跨应用程序域边界直接进行访问对象时,则认为该对象具有弱标识。 对于尝试获取对具有弱标识的对象的锁的线程,该线程可能会被其他应用程序域中持有对同一对象的锁的另一线程所阻止。

CA2003:不要将纤程视为线程

托管线程被视为 Win32 线程。

CA2004:移除对 GC.KeepAlive 的调用

如果转换为使用 SafeHandle,请移除所有对 GC.KeepAlive (object) 的调用。 在这种情况下,类不必调用 GC.KeepAlive,因为假定它们没有终结器,只是依赖 SafeHandle 来为它们完成 OS 句柄。

CA2006:使用 SafeHandle 封装本机资源

在托管代码中使用 IntPtr 可能意味着潜在的安全性和可靠性方面的问题。 必须检查所有使用 IntPtr 之处,以确定是否需要在该处使用 SafeHandle 或类似的技术。