Web サービスがあり、コンストラクターで多くのメソッドを開始します。これらの「終了」(データベース接続の終了など)の多くが必要です。コンストラクター(デコンストラクター)に少し似た、これを行う簡単でダンディな方法はありますか?メソッドは webservice メソッド呼び出しの最後に実行されましたか? 各メソッドの最後にすべてを繰り返すのは、もっとスマートな方法があるに違いないと感じます。
私が選んだ言語は c# です
Web サービスがあり、コンストラクターで多くのメソッドを開始します。これらの「終了」(データベース接続の終了など)の多くが必要です。コンストラクター(デコンストラクター)に少し似た、これを行う簡単でダンディな方法はありますか?メソッドは webservice メソッド呼び出しの最後に実行されましたか? 各メソッドの最後にすべてを繰り返すのは、もっとスマートな方法があるに違いないと感じます。
私が選んだ言語は c# です
このアプローチはどうですか?
private void WebMethodAction()
{
Execute(() =>
{
Console.WriteLine("Hello World");
});
}
private int WebMethodFunc(int a, int b)
{
return Execute(() =>
{
return (double)a / (double)b;
});
}
public void Execute(Action action)
{
// call Execute<T> and discard result
Execute(() => { action.Invoke(); return true; });
}
public T Execute<T>(Func<T> func)
{
T result = func.Invoke();
// cleanup
Console.WriteLine("Cleanup");
return result;
}
try finallyを使用して、すべての整理を finally セクションに配置できます。
これを Web サービス メソッド内に配置します。
[WebMethod]
public void DoSomething(string value)
{
try
{
//Do Something
}
finally
{
//Tidy up after methods in the try have ended
}
}