C# WCF服务作为一个独立的库-DI与Ninject
这是我的项目图(快捷方式)。我正在使用Ninject解决我的解决方案中的DIC# WCF服务作为一个独立的库-DI与Ninject,c#,wcf,dependency-injection,ninject,inversion-of-control,C#,Wcf,Dependency Injection,Ninject,Inversion Of Control,这是我的项目图(快捷方式)。我正在使用Ninject解决我的解决方案中的DI MyWCF服务 应用程序启动 NinjectWebCommon.cs web.config 朋友们,执行 Friends.svc Friends.svc.cs 朋友,合同 IFriends.cs D.执行 bleble.cs D.合同 IBlebleble.cs 我在Friends.Implementation库中的WCF服务有问题 当我在MyWCFService中有Friends.sv
- MyWCF服务
- 应用程序启动
- NinjectWebCommon.cs
- web.config
- 应用程序启动
- 朋友们,执行
- Friends.svc
- Friends.svc.cs
- Friends.svc
- 朋友,合同
- IFriends.cs
- D.执行
- bleble.cs
- D.合同
- IBlebleble.cs
Friends.Implementation
库中的WCF服务有问题
当我在MyWCFService
中有Friends.svc和Friends.svc.cs文件时,一切都正常(DI和Ninject工作)
但当我将好友服务移动到单独的库中时,会出现以下错误:
无法将提供的服务类型作为服务加载,因为它
没有默认(无参数)构造函数。修理
问题,请向类型添加默认构造函数,或传递的实例
将该类型复制到主机
为什么我会犯这样的错误?如何解决
这是我的服务代码:
<%@ ServiceHost Language="C#" Debug="true" Service="XYZ.Services.Friends" CodeBehind="Friends.svc.cs" Factory="Ninject.Extensions.Wcf.NinjectServiceHostFactory" %>
关于。对于单独库中的服务,您应该从
ServiceHost
中删除codebeahind=“Friends.svc.cs”
属性,并且服务
属性应该与您的服务实现类型的完全限定程序集名称匹配这不是解决方案。对于相同的服务,没有IoC和构造器,一切正常。
public IAccountService accountService { get; set; }
public IFriendsService friendsService { get; set; }
public Friends(IAccountService _acc, IFriendsService _friends)
{
this.accountService = _acc;
this.friendsService = _friends;
}