C# 为wcf配置的autofac wcf未在autofac容器中注册
我正在用DDD、工作单元和autofac.WCF在WCF中做一个项目,并给出以下错误 为WCF配置的服务“WebCode.service.WCF.TablasMaestrasService,WebCode.service.WCF”未在Autofac容器中注册 Bootstrapper.csC# 为wcf配置的autofac wcf未在autofac容器中注册,c#,wcf,autofac,unit-of-work,C#,Wcf,Autofac,Unit Of Work,我正在用DDD、工作单元和autofac.WCF在WCF中做一个项目,并给出以下错误 为WCF配置的服务“WebCode.service.WCF.TablasMaestrasService,WebCode.service.WCF”未在Autofac容器中注册 Bootstrapper.cs builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As(); 建设者 .RegisterAsse
builder.RegisterType().As();
builder.RegisterType().As();
builder.RegisterType().As();
建设者
.RegisterAssemblyTypes(typeof(PaisRepository).Assembly)
.Where(t=>t.Name.EndsWith(“存储库”))
.a实现接口();
建设者
.RegisterAssemblyTypes(typeof(PaisService).Assembly)
.Where(t=>t.Name.EndsWith(“服务”))
.a实现接口();
IContainer容器=builder.Build();
container.Resolve();
container.Resolve();
container.Resolve();
AutofacHostFactory.Container=容器;
TablesMaxTrasService.svc
<%@ ServiceHost
Language="C#"
Debug="true"
Service="WebCode.Service.WCF.TablasMaestrasService,WebCode.Service.WCF"
Factory="Autofac.Integration.Wcf.AutofacServiceHostFactory, Autofac.Integration.Wcf"
CodeBehind="TablasMaestrasService.cs" %>
TablesMaxTrasService.cs
[服务合同]
公共类TablasMaestrasService:ITablasMaestrasService
{
私有只读IPaisService(uPaisService);
公共表格服务(iPaiService PaissService)
{
_paisService=paisService;
}
公共列表GetPaises()
{
return=_paisService.GetAll();
}
}
Itablasmaestraservice.cs
[服务合同]
公共接口ITablasMaestrasService
{
[经营合同]
列出GetPaises();
}
这可能会发生吗?
一些帮助注册您的服务实施:
builder.RegisterType<WebCode.Service.WCF.TablasMaestrasService>();
builder.RegisterType();
它不是调用存储库和执行验证的地方。我还认为
[ServiceContract]
属性需要在接口上,而不是在实现上。您始终需要注册服务实现,这是事实。在这种情况下,它需要注册为自身-tablasmtrasservice
,因为.svc
文件通过Service
属性引用了它。添加该行会导致此错误。TablasMaestrasService类型的服务类定义ServiceContract并从ITablasMaestrasService类型继承ServiceContract。合同继承只能在接口类型之间使用。如果使用ServiceContractAttribute属性标记类,则该类必须是层次结构中具有ServiceContractAttribute的唯一类型。考虑将WebCODE..Serv.WCF.ITABASMASTARASService中的Service EngReTrtAtvices移动到WebCODE.Serv.WCF.ITABASASMARSTASServices类型实现的单独接口。错误消息是正确的。您必须将[ServiceContract]属性从服务移动到接口ITablasMaestrasService。还要检查该接口的方法是否具有[OperationContract]属性。从TablesMaxTrasService中删除[ServiceContract]。它应该只在接口上。