Я относительно новичок в разработке .Net и C #, и у меня возникла проблема с развязкой служб WCF из приложения в создаваемую мной сетевую DLL. Цель библиотеки DLL - предложить простой способ размещения службы и доступа к ней с сервера и клиентского приложения, а также добавить некоторые функции к базовой службе для контрольного сигнала и автоматического переподключения без необходимости для каждого приложения указывать методы контрольного сигнала. в своих службах WCF и без / без того, чтобы приложения управляли таймером для автоматического переподключения.
DLL предлагает классы ServiceServer и ServiceClient, которые преследуют следующие цели:
ServiceServer
:
- Создает экземпляр
ServiceHost
и управляет им. - Разместите службу извне DLL (передается как универсальная).
- Добавьте операции пульса в службу, которую нужно разместить, а также другие операции, общие для всех наших клиент-серверных приложений.
ServiceClient
:
- Создает и делает ссылку на клиентскую службу доступной для клиентского приложения. Ссылка на службу (автоматически сгенерированная) также передается из приложения как универсальная.
- Добавьте методы пульса в ссылку на службу для клиента, а также другие операции, общие для всех наших клиент-серверных приложений.
- Автоматическое переподключение с использованием таймера или подобного.
До сих пор я безуспешно пытался использовать частичные классы, дженерики и статические методы расширения. Проблема в том, что для того, чтобы моя DLL была полностью отделена, я получаю и создаю ссылку на службу и службу с использованием универсальных шаблонов; Я не могу расширить полученный универсальный тип с помощью любого из этих подходов.
Я в основном пытаюсь расширить ссылку на клиентскую службу дополнительными методами, чтобы иметь возможность отправлять биения и т. автоматическое переподключение. Точно так же я хочу расширить службу, которую класс сервера получает в качестве параметра, чтобы добавить операции и реализацию кода пульса сервера, а в конечном итоге и другие методы, общие для всех приложений.