WCFサービスAPIのラッパーがあります
Class APIWrapper
{
private WCFClient _client;
//constructor opens a client connection
public APIWrapper()
{
_client = new WCFClient();
_client.open();
}
public API1()
{
_client.doSomething1();
}
public API2()
{
_client.doSomething2();
}
}
聞きたい:
Q1タイムアウト例外は発生しますか?このラッパークラスインスタンスが長すぎる場合はどうなりますか?(WCF接続はデフォルトでキープアライブですか?configでその属性を設定しません)たとえば、ラッパークラスが構築された後、そのAPI1またはAPI2は10分後に呼び出されます。これは、このWCF接続のタイムアウト値よりも長くなります。
Q2接続を明示的に閉じる必要がありますか?そうであれば、以下のようにラッパークラスのデストラクタで接続を閉じる必要がありますか?
~APIWrapper
{
if(_client !=null)
try{
_client.close(); }
catch(Exception e){
_client.Abort(); }
}