asmx Web服务和IoC

时间:2012-12-13 07:50:00

标签: web-services castle-windsor ioc-container

我在global.asax中注册组件。我在每个Web方法的try块中解析并在finally块中释放。我为容器创建了一个包装器,以便在注册期间直接调用它。 Web方法调用此包装器来解析和释放组件。这个尝试最终添加了很多样板代码。 我做对了吗?如果不是我应该怎么做?我正在使用Castle Windsor。

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

1 个答案:

答案 0 :(得分:2)

我找到了解决方案。事实证明,我可以将我的组件配置为每个Web请求,然后我不必释放它们,因为它们将在请求结束时自动释放。

您可以在本文中找到详细信息:http://devlicio.us/blogs/krzysztof_kozmic/archive/2010/08/27/must-i-release-everything-when-using-windsor.aspx

相关问题