1

我正在尝试为托管在以完全信任模式运行的 Azure WebRole 中的 WCF 服务实现依赖项注入(因此有两个单独的进程)。

到目前为止,我已经尝试过 Ninject,并且使用本文中描述的方法将依赖项注入 WCF 服务没有问题:http: //tinyurl.com/cnxrscg

但是,我还有两个未解决的问题:

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

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

谢谢!

4

1 回答 1

2

每个 AppDomain 都需要自己的容器。通过 AppDomain 甚至跨进程共享容器通常是不受容器支持的,如果支持,则会消耗大量性能,因为所有编组将在两个 AppDomain 之间进行。此外,每个 AppDomain 通常代表自己的应用程序,并且每个应用程序通常都需要唯一的注册。这本身就证明了为每个 AppDomain 提供自己的容器是合理的。

于 2012-05-29T07:51:49.617 回答