Я довольно новичок в 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>()))
Еще раз спасибо!