アンマネージドC++にCOMコンポーネントを作成して、顧客にデータベースへのアクセスを提供しました。アンマネージ言語から使用する場合、データベース接続はオブジェクトがスコープ外になると正しくクリーンアップされます。私は最近VB.NETからの使用を試み、COMオブジェクトが破壊されていないことを発見しました。 System.Runtime.InteropServices.Marshal.ReleaseComObjectへのスキャッタリングは問題を修正しますが、このCOMオブジェクトは顧客用に設計されているため、よりシンプルで例外的な安全ソリューションを探したいと思います。COMオブジェクトでDisposeを実装する方法
正しい解決策は、管理対象オブジェクトが自動的にオブジェクトがもはや必要としない場合廃棄を呼び出し、使用することができ文を使用してIDisposeableので実装持つことであることが表示されます。
オブジェクトのサブセットに対してIDisposeableを実装するにはどうすればよいですか?処分を必要とするオブジェクトのいくつかは、共同作成可能ではなく、他の関数によって返されます。
おそらく、この質問に対する私の答え(http://stackoverflow.com/questions/158706/how-to-properly-clean-up-excel-interop -objects-in-c/158752#158752)は、特定のケースで役立ちます。 – VVS