現在、C#を使用してASP.NETMVC4プロジェクトで作業しています。
try/catch
さまざまなタイプのメソッドを受け入れ、それらのメソッドをでラップし、呼び出しが成功した場合にメソッド呼び出しの結果を返す拡張メソッドを作成したいと思います。
これが私がこれまでに持っているものです:
public static object HandleServerError(this object obj)
{
object result = null;
try
{
result = obj;
}
catch (Exception ex)
{
ErrorHandlers.ThrowServerErrorException(ex);
}
return result;
}
使用中の拡張メソッドの例を次に示します。
var test = webClient.DownloadString(uri).HandleServerError().ToString();
これは問題なく動作しますが、パーツが実行されてから、私が望むものではない文字列としてwebClient.DownloadString(uri)
渡されます。HandleServerError
私がやりたいのはwebClient.DownloadString(uri)
、拡張メソッドにINJECTを実行して、実際のメソッド呼び出しがtry/catchにラップされるようにすることです。
ご注意ください
try / catchステートメントに反対する議論があることは理解していますが、この主題についての議論を始めるつもりはありません。この質問の核心は、依存性注入の問題に集中しています。しかし、すべての答えをありがとう!