私は、複数のWCFサービス参照を持つWebアプリケーションを開発しています。現在、我々は(例として)次の操作を行い、サービスの呼び出しを行う必要があるたびに:静的クラスのオブジェクトインスタンス
Service.ServiceClient ServiceClient = new Service.ServiceClient();
ServiceClient.SomeMethod();
各サービスへの静的参照を含む静的クラスを持っているし、代わりにそのクラスを呼び出す方が良いでしょうこれにより、呼び出すたびにServiceClientオブジェクトの新しいインスタンスを作成しないようにします。例えば
:
public static class Services
{
private static Service.ServiceClient _ServiceClient = new Service.ServiceClient();
public Service.ServiceClient ServiceClient
{
get
{
return _ServiceClient;
}
}
}
そして、このようにそれをやっている場合、新しい私たちは、そのオブジェクトを呼び出すようにしようとするたびに作成されるオブジェクト、または意志原因となるライン
private static Service.ServiceClient _ServiceClient = new Service.ServiceClient();
それが呼び出されるたびにそのオブジェクトの同じインスタンスになりますか?
のようにそれを消費します、次のように今、これらの関数の中にあなたが行うことができ、任意のは、チャネルファクトリは、下に異なるインスタンスのthatsの間でリソースを共有する方法すべてのインスタンス間で共有リソースを解放するために完了したら、各インスタンスをClose()する必要があります。 –
さらに、すべてのコールで同じプロキシオブジェクトを使用していて、何らかの理由でコールで失敗した場合、このオブジェクトは、Abort()およびロングストーリーを使用しない限り使用できません。その方法で使用するように設計されています。プロキシのインスタンスを作成し、メソッドを呼び出し、最後にインスタンスを閉じます()。 –