Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为wcf配置的autofac wcf未在autofac容器中注册_C#_Wcf_Autofac_Unit Of Work - Fatal编程技术网

C# 为wcf配置的autofac wcf未在autofac容器中注册

C# 为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

我正在用DDD、工作单元和autofac.WCF在WCF中做一个项目,并给出以下错误

为WCF配置的服务“WebCode.service.WCF.TablasMaestrasService,WebCode.service.WCF”未在Autofac容器中注册

Bootstrapper.cs

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]。它应该只在接口上。