【发布时间】:2010-09-21 20:29:43
【问题描述】:
有人可以指导我了解 WCF 服务的 Unity 依赖注入的一个很好的例子吗? 任何博客或 msdn 文章也会有所帮助。
【问题讨论】:
标签: dependency-injection wcf unity-container
有人可以指导我了解 WCF 服务的 Unity 依赖注入的一个很好的例子吗? 任何博客或 msdn 文章也会有所帮助。
【问题讨论】:
标签: dependency-injection wcf unity-container
This answer 举例说明了如何使用 Castle Windsor 在 WCF 中启用 DI。
只需将示例中的 IWindsorContainer 替换为 IUnityContainer 即可,尽管您可能还想将类名从 WindsorXyz 更改为 UnityXyz :)
【讨论】:
要将依赖项注入 WCF 服务,我必须实现一个服务主机工厂。
我找到了一个分步教程here。
基本上你必须:
【讨论】:
我正要试一试Unity.Wcf 库(https://github.com/ViceIce/unity.wcf),乍一看还不错。我在this article 读过这个:
如果您使用 ServiceHost 在 Windows 服务中托管 WCF 服务,请将 ServiceHost 实例替换为自定义 Unity.Wcf.UnityServiceHost。您会发现 UnityServiceHost 将 Unity 容器作为其第一个参数,但在其他方面与默认 ServiceHost 相同。
因为这是我的情况,我会这样做......
class Program
{
static void Main(string[] args)
{
// 1st Initialize the Host (Configures Container and Factories)
ServiceHostController.Initialize();
// 2nd Create a URI to serve as the base address.
var baseAddress = new Uri("http://localhost:54321/BlaBlaBla/");
// 3rd Create a UnityServiceHost instance
var myService = new UnityServiceHost(ServiceHostController.UnityContainer, typeof(MyService), baseAddress);
try
{ //etcetera...
它对我有用,我仍然需要重构一些东西并添加功能和方法,但起点就像一个魅力。
希望对你有帮助。
【讨论】: