【发布时间】:2011-03-28 23:55:32
【问题描述】:
我在 WPF 客户端中自托管 WCF 服务。我想在用户界面中显示服务接收到的数据。每次收到一些数据时,都应该更新用户界面。
“App.xaml.cs”中的代码看起来像
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();
}
如何从托管 WPF 应用程序获取实现服务合同的对象实例?
感谢大家的回答。
我没有看到的是 ServiceHost 的构造函数允许传递服务的 instance 而不是它的 type。
所以我现在要做的是:
- 在服务实现中使用 ObservableCollection
- 将服务配置为单例(参见 theburningmonk 的评论)
- 绑定到我的 WPF 应用程序中的 ObservableCollection
- 使用数据绑定属性DataContext获取服务实例
- 传递给ServiceHost的构造函数
结果:单例 WCF 服务中的每次更新都会反映在 UI 中。
快乐!
【问题讨论】:
-
您已经获得了课程 (MyService)。我想你的意思是:如何获取对象实例。
-
谢谢,是的,我改了问题。
标签: c# wpf wcf data-binding