5

私はMSDNでRSACryptoServiceProviderを破棄する必要があることを読みました(重要な注意を参照)。彼らは例を挙げます:

using (RSACryptoServiceProvider RSA = new RSACryptoServiceProvider())

今、私はRSACryptoServiceProviderをMyClassに含めて、いくつかのメソッドでそれを利用しようとしています。この設定では、usingステートメントを使用できません。

代わりに、適切なタイミングでRSACryptoServiceProviderオブジェクトの.Dispose()メソッドを呼び出そうとしますが、コンパイルエラーメッセージが表示されます。

`System.Security.Cryptography.AsymmetricAlgorithm.Dispose(bool)'は、その保護レベルのためにアクセスできません

RSACryptoServiceProviderは、(usingステートメントを使用して)1回の関数呼び出しより長く使用されることは想定されていませんか?

どうすればこれを修正できますか?Dispose呼び出しをオプションにしませんか?

4

1 に答える 1

2

Clearメソッドは、disposeメソッドを呼び出すように見えます。

このメソッドは、IDisposable.Disposeメソッドへの単純な呼び出しです。Disposeを呼び出すと、AsymmetricAlgorithmクラスによって使用されるリソースを他の目的に再割り当てできます。Disposeの詳細については、「管理されていないリソースのクリーンアップ」を参照してください。

于 2010-03-19T21:11:03.233 に答える