0

コンポーネントをglobal.asaxに登録します。すべてのWebメソッドのtryブロックで解決し、finallyブロックでリリースします。登録時にのみ直接呼び出されるように、コンテナーのラッパーを作成しました。Webメソッドはこのラッパーを呼び出して、コンポーネントを解決および解放します。この試みは最終的に多くの定型コードを追加します。私は正しくやっていますか?そうでない場合はどうすればよいですか?キャッスルウィンザーを使用しています。

[WebMethod]
public void SomeMethod()
{
    ISomeComponent c = null
    try
    {
        c = myContainer.ResolveSomeComponent();
        c.Method();
    }
    finally
    {
        myContainer.Release(c);
    }
}
4

1 に答える 1

2

私は解決策を見つけました。結局のところ、コンポーネントをWebリクエストごとに構成でき、リクエストの最後に自動的にリリースされるため、コンポーネントをリリースする必要はありません。

この記事で詳細を見つけることができます:http://devlicio.us/blogs/krzysztof_kozmic/archive/2010/08/27/must-i-release-everything-when-using-windsor.aspx

于 2012-12-16T22:20:18.723 に答える