Я пытаюсь преобразовать существующий проект, который использует .NET Remoting, чтобы использовать WCF.Структура проекта следующая:
Проект BusinessLayer - это библиотека классов, которая содержит объект, активируемый клиентом DistributedProcessor
, который имеет метод IResult Process(IJobProcessor)
.Интерфейсы IJobProcessor
и IResult
и конкретные классы находятся в библиотеке BusinessLayer.Конкретные классы IJobProcessor
, в свою очередь, используют много, много классов в BusinessLayer.
Для .NET Удаленная работа в этой ситуации идеальна.Распределенная часть - это просто служба Windows, которая содержит BusinessLayer и прослушивает определенный порт.Клиентская сторона создает удаленный объект, используя Activator.GetObject()
.
. Чтобы преобразовать его в WCF, я понял, что у меня есть проблема циклической зависимости, если я структурирую проект следующим образом:
- UI
- BusinessLayer - ссылки на WcfService
- WcfService - ссылки на BusinessLayer
Службе требуется ссылка на BusinessLayer, чтобы я мог передавать объекты по проводам.BusinessLayer нужна ссылка на WcfService, чтобы он мог вызывать метод IResult Process(IJobProcessor)
на WcfService.
Можно ли переместить интерфейсы IResult
и IJobProcessor
в отдельный проект BusinessLayerDistributed, например:
- UI
- BusinessLayer - ссылки BusinessLayerDistributed
- BusinessLayerDistributed
- WcfService - ссылки BusinessLayer, BusinessLayerDistributed
Мой вопросявляется: Если конкретные классы для всех этих интерфейсов все еще находятся в BusinessLayer, будут ли объекты IResult
и IJobProcessor
правильно гидратированы как их конкретный класс при передаче в службу?Есть ли уловка, чтобы сделать это с WCF?