Я впервые тестирую WPF и пытаюсь вызвать службу WCF с ObjectDataProvider.
Служба WCF с именем WcfService1 с одним методом:
namespace WcfService1
{
public class Service1 : IService1
{
public String HelloWorld()
{
return "Hello World!";
}
}
}
Я добавил ссылку на службу в мой проект WPF и назвал ее TestService
В моем главном окне я могу вызвать это без проблем в коде позади. Это кажется простым; как вызов веб-службы:
TestService.Service1Client service = new TestService.Service1Client ();
MessageBox.Show (service.HelloWorld ());
Я пытаюсь создать ObjectDataProvider, который указывает на этот сервис. Я предполагаю, что я запутался относительно того, каким должен быть ObjectType? Я пробовал local, пространство имен службы, src; Я потерян:
<Window.Resource>
<ObjectDataProvider
x:Key="odpTestService"
ObjectType="{x:Type **TestService**:Service1Client}"
MethodName="HelloWorld" />
</Window.Resources>
В конечном итоге он будет привязан к текстовому блоку:
<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 не может вызвать метод HelloWorld с типом IService1 (используя метод и тип из моего примера). Есть идеи почему?