Soy autohospeda de un servicio WCF en un cliente de WPF. Quiero mostrar los datos que el servicio recibe en la interfaz de usuario. Cada vez que se reciben datos, la interfaz de usuario debe actualizarse.Servicio WCF autohospedado: ¿Cómo acceder a los objetos que implementan el contrato de servicio desde la aplicación de alojamiento?
El código en "App.xaml.cs" parece
private ServiceHost _host = new ServiceHost(typeof(MyService));
private void Application_Startup(object sender, StartupEventArgs e)
{
_host.Open();
}
private void Application_Exit(object sender, ExitEventArgs e)
{
_host.Close();
}
¿Cómo puedo obtener la instancia (s) objeto que implementa el contrato de servicio de la aplicación WPF hosting?
Gracias a todos por las respuestas.
Lo que no vi fue que el constructor de ServiceHost permite pasar un ejemplo del servicio en lugar de su tipo.
Así que lo que hago ahora es:
- utilizar un ObservableCollection en la implementación del servicio
- configurar el servicio para ser un producto único (ver el comentario de theburningmonk)
- se unen al ObservableCollection en mi aplicación WPF
- Obtenga una instancia del servicio utilizando la propiedad de enlace de datos DataContext
- Páselo al constructor de ServiceHost
Resultado: cada actualización en el servicio WCF singleton se refleja en la interfaz de usuario.
¡Feliz!
Tienes la clase (MyService). Creo que quieres decir: cómo obtener las instancias del objeto. –
Gracias, eso es correcto, he cambiado la pregunta. – Robert