Я постараюсь объяснить проблему как можно лучше, поскольку это немного странно для меня.
У меня есть библиотека классов C #, которая определяет группу классов, которые будут использоваться в качестве объектов передачи данных или DTO.
Есть приложение Windows Forms, которое имеет ссылку на эту библиотеку классов DTO, а также ссылку на другую библиотеку классов, которая определяет Presenters для шаблона Model - View - Presenter.
Эта библиотека классов презентаторов имеет ссылку на другую библиотеку классов, которая содержит прокси-классы WCF.
Библиотека классов WCF proxys содержит ссылку на другую библиотеку классов со всеми интерфейсами, которые определяют контракты для служб WCF.
Наконец, эта библиотека с контрактами WCF имеет ссылку на первую библиотеку классов DTO, поскольку они принимаются в качестве параметров для методов.
Теперь, после объяснения этой инфраструктуры, проблема в том, что проект формы Windows не компилирует ошибку, которую я получаю:
Proheart.EmployeeView не реализует элемент интерфейса
'Proheart.IEmployeeView.JobDescriptions'.
«Proheart.EmployeeView.JobDescription» не может реализовать
'Proheart.IEmployeeView.JobDescriptions'
потому что у него нет соответствующего возвращаемого типа
'System.Collections.Generic.List'.
В основном код выглядит так:
//This interface is defined on the Presenters class library.
public interface IEmployeeView
{
List<JobDescriptionDto> JobDescriptions { set; }
}
//This is the form in the Windows Forms project
public partial class EmployeeView : Form, IEmployeeView
{
public List<JobDescriptionDto> JobDescriptions { set { ... do something } }
}
Пожалуйста, мне нужна помощь. Я знаю, что разделение всех библиотек классов может показаться странным, но это из-за стратегии развертывания.
Спасибо.
PS Раньше я не упоминал, что библиотека классов Presenter НЕ имеет ссылки на библиотеку DTO, а также прокси служб WCF. Кажется, он извлекается из библиотеки классов Service Interfaces, так как, если я вручную добавлю его в Presenter, я получу ошибку циклической ссылки.