У меня проблема в том, что я не знаю, как перенаправить объект (полученный через WCF) в другой поток (например, WinForm).
Я создаю сервис в классе ComManager.cs :
var wcfServer = new ServiceHost(typeof(ClientListenerService));
wcfServer.Open();
У меня есть реализация интерфейса службы, подобная этой, в ClientListenerService.cs :
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single ..... )]
public class ClientListenerService : IClient
{
// This is a theoretical approach, as there is no way to forward an event handler to the service here
public event xyz;
public void AlarmTriggered(AlarmTriggeredDto dto)
{
// How do i get the object to some kind of event handler outside of this service here???
// I need sth. like:
xyz.Invoke(dto);
}
}
Когда вызывается метод AlarmTriggered (dto) , мне нужно перенаправить объект в другой поток.
Я понятия не имею, как этого добиться, так как я не могу найти способ передать какие-либо параметры в сервисный узел (например, обработчик событий или что-то в этом роде), который мой ClientListenerService может использовать впоследствии.
Все обходные пути со статическими объектами / очередями не соответствуют моим требованиям.
Есть идеи?