2010-03-19 85 views
4

我已阅读MSDN(see Important note)RSACryptoServiceProvider必须处置。他们给出的例子:如何手动配置RSACryptoServiceProvider?

现在我想包括RSACryptoServiceProvider到MyClass使用它的几种方法。有了这个设置,我不能使用using语句。

相反,我尝试调用.Dispose()方法的RSACryptoServiceProvider对象在适当的时间,但后来我得到的编译错误消息:

`System.Security.Cryptography.AsymmetricAlgorithm.Dispose(布尔)'由于其保护级别而无法访问

RSACryptoServiceProvider不应该被使用超过一个函数调用(使用using语句)吗?

我该如何解决这个问题,是不是让Dispose调用成为一个选项?

回答

1

Clear方法看起来像它会调用Dispose方法:

这种方法是对IDisposable.Dispose方法的简单调用。 调用Dispose允许将AsymmetricAlgorithm类使用的资源重新分配用于其他目的。有关Dispose的更多信息,请参阅清理非托管资源。

+2

@phq:或者,如果由于某种原因,您*坚持调用Dispose,然后将该值转换为IDisposable,然后调用Dispose处理结果。但更好的做文档所说的并称为清除。 – 2010-03-19 22:20:09