【问题标题】:WCF service with ninject extension带有 ninject 扩展的 WCF 服务
【发布时间】:2013-04-15 00:11:26
【问题描述】:

我的 wcf 服务与 ninject 扩展有问题。当我的服务没有无参数构造函数时,当我尝试调用它时,我得到错误,我错过了它,当我得到无参数构造函数时:

  [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
public class ContractService: IContractService
{
 public ContractService()
        : this(new AddressService(), new TelephoneService())
    {

    }
    [Inject]
    public ContractWCFService(IAddressService addressService, ITelephoneService telephoneService)
    {

        _addressService = addressService;
        _telephoneService = telephoneService;
    }...
}

然后,调用无参数的,我认为应该调用具有属性 [Inject] 的第二个。

编辑:NinjectWebCommon:

  private static void RegisterServices(IKernel kernel)
    {
        kernel.Bind<ServiceHost>().To<NinjectServiceHost>();

        kernel.Bind<IAddressService>().To<AddressService>().InHttpRequestScope();
        kernel.Bind<TelephoneService>().To<TelephoneService>().InHttpRequestScope();
        kernel.Bind(typeof(IRepository<>)).To(typeof(Repository<>)).InHttpRequestScope();
        kernel.Bind(typeof(EFModel)).ToSelf().InHttpRequestScope();
        IoC.Initialize((StandardKernel)kernel);


    }        

有什么想法吗?

【问题讨论】:

    标签: wcf web-services ninject


    【解决方案1】:

    要使用ninject 传递参数/管理您的实例,您应该结合Instance Provider 和/或特定的 ninject extenstion.

    这篇文章也有帮助:Passing parameters to a WCF ServiceHost type with Ninject 2

    【讨论】:

      猜你喜欢
      • 2011-08-10
      • 2011-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-26
      • 1970-01-01
      • 1970-01-01
      • 2013-07-25
      相关资源
      最近更新 更多