1

我试图在以完全信任模式运行的Azure WebRole(所以有两个单独的进程)中托管的WCF服务实现依赖注入。使用Azure WebRole完全信任地使用单个容器实现依赖注入

我试过Ninject到目前为止,我不得不使用本文中所描述的方法注入依赖到WCF服务没有问题:http://tinyurl.com/cnxrscg

不过,我仍然有两个悬而未决的问题:

  1. 我似乎无法找到在RoleEntryPoint之前实例化Kernel的方法,以便我可以将需要的依赖项注入到它中。我应该从那里创造它还是有更好的做法?
  2. 由于以完全信任方式运行意味着两个进程,这是否也意味着我别无选择,只能创建两个单独的内核实例?

注意:我对Ninject特定的解决方案不感兴趣。事实上,我在处理它时偶然发现了很多缺点,所以我正在考虑一个不同的IoC容器。哪一个最适合Azure?

谢谢!

回答

2

每个AppDomain都需要自己的容器。通过AppDomains甚至跨进程共享一个容器通常不受容器支持,如果是这样的话,它会花费很多性能,因为所有的编组将在两个AppDomain之间进行。此外,每个AppDomain通常代表自己的应用程序,每个应用程序通常需要其唯一的注册。这本身就证明给每个AppDomain自己的容器。