这是我的项目图(快捷方式)。我正在使用Ninject解决我的解决方案中的DI。
我的Friends.Implementation
库中的WCF服务出现问题。
当我在MyWCFService
中有Friends.svc和Friends.svc.cs文件时,一切正常(DI和Ninject有效)。
但是当我将Friends服务移到单独的库中时,我收到此错误:
提供的服务类型无法作为服务加载,因为它 没有默认(无参数)构造函数。修复 问题,向类型添加默认构造函数,或传递实例 主机的类型。
为什么我会收到错误?如何解决?
这是我的服务代码:
<%@ ServiceHost Language="C#" Debug="true" Service="XYZ.Services.Friends" CodeBehind="Friends.svc.cs" Factory="Ninject.Extensions.Wcf.NinjectServiceHostFactory" %>
.CS文件
public IAccountService accountService { get; set; }
public IFriendsService friendsService { get; set; }
public Friends(IAccountService _acc, IFriendsService _friends)
{
this.accountService = _acc;
this.friendsService = _friends;
}
问候。
答案 0 :(得分:0)
对于单独库中的服务,您应该从CodeBehind="Friends.svc.cs"
删除ServiceHost
属性,Service
属性应与服务实现的完全限定程序集名称匹配