WCF メソッドへのプロキシを保持するシングルトン オブジェクトがあります。コード内のいくつかのポイントから呼び出されるこの Singleton オブジェクトは、COM オブジェクトとしてインクルードされます。私の質問は:
GC
後で (COM などで) 使用する場合でも、オブジェクトを解放することができますか?Dispose()
このオブジェクトをいつ決定することができますか? メソッドの使用~Finalizer()
は良い考えですか? それとも、GC
私が使い終わる前にファイナライズすることを決めるのでしょうか?- 電話
GC.KeepAlive(this)
で問題を解決できますか?
ありがとう!
編集:
public class Singleton
{
private static Singleton instance = null;
public static Singleton GetInstance()
{
if (instance == null)
{
lock (syncObject)
{
if (instance == null)
{
instance = new Singleton();
}
}
}
return instance;
}
public void CallWcfMethod()
{
// ....
}
}
public class Class1
{
Singleton instance = Singleton.GetInstance();
public void CallWcfMethod()
{
instance.CallWcfMethod();
}
}
[ComVisible(true)]
public class Class2
{
Singleton instance = Singleton.GetInstance();
public void CallWcfMethod()
{
instance.CallWcfMethod();
}
}