Мне нужно немного руководства здесь. У меня есть служба WCF, которая является частью более крупного решения. В настоящее время конечный потребитель должен ссылаться на слишком много сборок из-за проблем наследования. Например, вот моя основная настройка проекта:
MyProject.Domain
namespace MyProject.Domain
{
public interface IFooable{}
public class Foo : IFooable{}
}
MyProject.Contracts
namespace MyProject.Contracts
{
[DataContract]
public class FooData : IFooable{}
[ServiceContract]
public class IFooService
{
IEnumerable<FooData> GetFoos();
}
}
MyProject.Proxies
namespace MyProject.Proxies
{
public class WCFClient{}
}
Проблема заключается здесь:
class ConsumerCode
{
private WCFClient = new WCFClient();
void consumeService()
{
// Compiler error. No reference to MyProject.Domain.IFooable
var foos = WCFClient.GetFoos();
}
Это означает, что конечный потребитель, который использует объект FooData , должен будет также включать ссылку на MyProject.Domain , которая воняет, потому что мне не нужно раскрывать бизнес Логический уровень для конечного клиента службы WCF.
Есть ли способ обойти это?