【发布时间】:2012-03-29 04:41:58
【问题描述】:
我是 WCF 的新手,我希望在一个解决方案中的服务和另一个解决方案中的服务使用者之间共享服务合同和数据合同。我创建了一个单独的项目,在包含服务合同和数据合同的两个解决方案之间共享。当我引用我的服务时,正在共享数据合同,但不共享服务合同。我的合同如下所示:
[ServiceContract]
public interface IDistributionService
{
[OperationContract]
[ServiceKnownType(typeof (Distribution))]
bool AddDistributions(Distribution[] oDistributions);
}
当我查看 reference.cs 文件时,我正在使用 Distribution 对象,但它再次生成 IDistributionService 合同,这里是 reference.cs 文件的摘录:
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
[System.ServiceModel.ServiceContractAttribute(ConfigurationName="eDistributorService.IDistributionService")]
public interface IDistributionService {
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IDistributionService/AddDistributions", ReplyAction="http://tempuri.org/IDistributionService/AddDistributionsResponse")]
bool AddDistributions(mhcb.syd.eDistribution.WebServices.Contracts.DTO.Distribution[] oDistributions);
}
有没有办法让消费者使用 IDistributionService 接口而不在 reference.cs 文件中生成具体实例?
我想知道的主要原因是我可以使用依赖注入(统一)。
.RegisterType<IDistributionService, DistributionServiceClient>(
new Interceptor<InterfaceInterceptor>(),
new InterceptionBehavior(container.Resolve<IInterceptionBehavior>()))
再次感谢!
【问题讨论】:
标签: c# wcf unity-container