如何在WCF中使用Ninject2?

Car*_*rgo 2 wcf dependency-injection ioc-container ninject-2

在IoC和DI .NET库的简短视图中,我选择使用Ninject2.根据DDD风格:

  • 基础设施:我有Entity Framework 4.0 .edmx模型和Repository实现
  • 域层:我有POCO对象和存储库接口(在基础结构中实现)
  • 应用程序服务:我有WCF服务,它调用来自域层的存储库接口中定义的方法.

我的问题是如何使用Ninject2在WCF中注入存储库.我已经阅读了一些使用Ninject2的文章,但是提供了非常简单的示例(例如:在同一个类库中的依赖注入).任何迹象都很有用:).

非常感谢!

Joe*_*zer 6

如果您下载Ninject 2 WCF扩展,您应该能够很好地完成这项工作.

主要区别在于您的svc文件有一个Factory条目:

<%@ ServiceHost Language="C#" Debug="true" Service="WcfService.YourService" CodeBehind="YourService.svc.cs" Factory="Ninject.Extensions.Wcf.NinjectServiceHostFactory" %>
Run Code Online (Sandbox Code Playgroud)

并且您的global.asax.cs文件继承自NinjectWcfApplication:

namespace WcfService
{
    public class Global : NinjectWcfApplication
Run Code Online (Sandbox Code Playgroud)

其余的代码和服务示例可以在这里找到.