【发布时间】:2014-01-18 05:17:36
【问题描述】:
这是我的项目图(快捷方式)。我正在使用 Ninject 来解决我的解决方案中的 DI。
- MyWCF 服务
- App_Start
- NinjectWebCommon.cs
- web.config
- App_Start
- Friends.Implementation
- 朋友.svc
- Friends.svc.cs
- 朋友.svc
- Friends.Contract
- IFriends.cs
- DAL.实施
- Blebleble.cs
- DAL.合同
- IBlebleble.cs
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;
}
问候。
【问题讨论】:
标签: c# wcf dependency-injection ninject inversion-of-control