特定の条件が失敗した場合、またはオブジェクトが部分的に構築された場合に、C# .NET から強制的に COM サーバー オブジェクトの割り当てを解除する方法を教えてください。
問題は、DCOM メカニズムを使用してその COM サーバーを使用していることです。最悪の場合、オブジェクトが完全に作成されておらず、障害が発生してからアプリケーションを終了しようとしても、COM オブジェクトはまだメモリ内にあります (COM+ アプリケーション コンポーネント サービスに示されています)。制限を超えると、メモリ リークやクラッシュが発生します。ただし、管理可能な量の障害が発生した場合、ある時点で削除されます。
サンプル:- Calculator.App objApp = new Calculator.App();
if( !obj.CanBeUsed() ) { //COM オブジェクト objApp の割り当てを解除する方法 }
注: Garbase Collector がヒープ メモリから強制的に割り当てを解除するために使用するメソッド GC.Collect() があります。この方法を使用できるか、.NET franework がこの特定のケースに対して別の解決策を提供しているかどうか?