这是如何“正确实施IDisposable”?

时间:2014-07-09 18:04:35

标签: c# code-analysis dispose idisposable suppressfinalize

我在我的一个项目上运行了Code Analysis,它给了我两个手指摇摆,即:

CA1063正确实施IDisposable在' UserStore'上提供Dispose(bool)的可覆盖实现或将类型标记为密封。对Dispose(false)的调用应该只清理本机资源。对Dispose(true)的调用应该清理托管和本机资源。

...在这行代码中:

public class UserStore : IUserStore<User>, IUserPasswordStore<User>,  IUserClaimStore<User>

......而且这个:

CA1063正确实施IDisposable修改&#39; UserStore.Dispose()&#39;所以它调用Dispose(true),然后在当前对象实例上调用GC.SuppressFinalize(&#39;这个&#39;或者在Visual Basic中),然后返回。

...在我的空Dispose:

public void Dispose()
{
    //
}

我可以通过这样做暗杀两只带有石化污垢的鸟类:

public override void Dispose()
{
    Dispose(true);
    GC.SuppressFinalize(this);
}

?那是它的暗示吗?

更新

回答我的问题(某种程度上),显然不是 - 我想我只是添加代码,看看代码分析是否会反馈为渴望的&#34;&#39; NRBQ。 API.UserStore.Dispose()&#39;:找不到合适的方法来覆盖&#34;

0 个答案:

没有答案