Я изменяю код в этом уроке , чтобы создать базовые классы клиент / сервер push wcf для подписки, и я только что натолкнулся на кирпичную стену.
Класс сервера в учебнике создан с использованием следующего кода:
class Program
{
static void Main(string[] args)
{
using (ServiceHost host = new ServiceHost(
typeof(StringReverser),
new Uri[]{
new Uri("net.pipe://localhost")
}))
{
host.AddServiceEndpoint(typeof(IStringReverser),
new NetNamedPipeBinding(),
"PipeReverse");
host.Open();
Console.WriteLine("Service is available. " +
"Press <ENTER> to exit.");
Console.ReadLine();
host.Close();
}
}
}
Я предполагаю, что публикует экземпляр StringReverser . Моя проблема в том, что мне нужна ссылка на этот экземпляр, чтобы я мог вызвать метод для передачи данных обратно клиенту.
В этом руководстве сервер просто отвечает клиенту методом обратного вызова, вместо этого я храню ссылку на клиента в списке подписчиков. Когда мне нужно отправить данные обратно клиентам, мне нужна ссылка на объект Service, чтобы я мог использовать функцию обратного вызова.
Есть ли способ публикации Сервиса с использованием WCF, который позволяет вам иметь ссылку на объект сервиса? или я могу получить ссылку на объект службы из объекта host ?
Буду признателен за любую помощь ...