【发布时间】:2009-05-04 20:53:50
【问题描述】:
我是第一次测试 WPF,我正在尝试使用 ObjectDataProvider 调用 WCF 服务。
使用单一方法命名为 WcfService1 的 WCF 服务:
namespace WcfService1
{
public class Service1 : IService1
{
public String HelloWorld()
{
return "Hello World!";
}
}
}
我向我的 WPF 项目添加了一个服务引用并将其命名为 TestService
在我的主窗口中,我可以在后面的代码中毫无问题地调用它。看起来很简单;就像一个网络服务调用:
TestService.Service1Client 服务 = new TestService.Service1Client(); MessageBox.Show(service.HelloWorld());
我正在尝试创建一个指向该服务的 ObjectDataProvider。我想我对 ObjectType 应该是什么感到困惑?我试过本地,服务命名空间,src;我迷路了:
<Window.Resource>
<ObjectDataProvider
x:Key="odpTestService"
ObjectType="{x:Type **TestService**:Service1Client}"
MethodName="HelloWorld" />
</Window.Resources>
最终它将绑定到 TextBlock:
<TextBlock Grid.Column="0" Grid.Row="0"
Grid.ColumnSpan="2" Background="AliceBlue"
Text="{Binding Source={StaticResource odpTestService}}" />
我试图从此处发布的 Flickr 示例开始工作:http://khason.net/blog/wpf-binding-to-wcf-and-more/
更新: 丹尼斯的回答确实解决了这里的部分问题。现在,我在编译时遇到错误: System.Windows.Data 错误:34:ObjectDataProvider:尝试调用类型上的方法失败;
ObjectDataProvider 无法调用类型为 IService1 的 HelloWorld 方法(使用我示例中的方法和类型)。任何想法为什么?
【问题讨论】: