在自定义会话存储提供程序上使用unity的依赖注

时间:2011-05-11 14:48:06

标签: asp.net dependency-injection inversion-of-control unity-container

我创建了一个自定义的SessionStateStore提供程序,但依赖项没有解析。我使用Unity进行DI。

我搜索了很多关于这个问题并获得了一些有用的提示,但我仍然无法做到正确。

  1. 提供者由框架构建和管理,我们没有机会拦截该构造以提供额外的依赖注入
  2. 覆盖自定义提供程序中的Initialize()方法,并在那里执行依赖项注入
  3. 有一个类似的问题和一个不错的解决方案herehere(StructureMap,而不是Unity),但我无法做到正确。

    请帮忙。感谢。

1 个答案:

答案 0 :(得分:1)

Providers are really painful things。实际上没有办法解决这个问题,但实际的方法是将提供程序作为组合根处理 - 换句话说,好像它是应用程序的入口点。在提供商内,您可以撰写所有服务。

如果您使用DI容器(如Unity),您可以将容器实例存储在HttpContext中,然后从提供程序中将其传递到compose your object graph