如何在Container实例上释放和处置所有Http范围的对象?

时间:2013-04-05 17:19:00

标签: c# structuremap httpcontext

在StructureMap中,如何在特定的Container实例上发布和处理Http范围的对象?对于Object Factory中的默认intance,我可以执行方法ReleaseAndDisposeAllHttpScopedObjects(),但Container类和IContainer接口似乎没有这样的方法。

1 个答案:

答案 0 :(得分:6)

如果你看一下ObjectFactory.ReleaseAndDisposeAllHttpScopedObjects的内部,你可以看到这是一个像这样实现的便捷方法:

public static void ReleaseAndDisposeAllHttpScopedObjects()
{
    HttpContextLifecycle.DisposeAndClearAll();
}

IE。您可以调用HttpContextLifecycle.DisposeAndClearAll方法来清除对象。

编辑:由于HttpContextLifecycle是全局的而不是每个容器,我认为{H}请求期间nested container方法可以获得对对象生命周期更精细控制的解决方案。