Использование веб-службы в приложении WPF
Я не хочу использовать веб-сервис внутри WPF
приложение.
Я могу добавить ссылку на сервис, и все объекты отображаются в браузере объектов, кроме ServiceClient
сам.
Я попытался добавить службу в консольное приложение, и там все получилось.
Есть ли ограничение на WPF
приложения, использующие веб-сервисы.
Я заметил, что в консольном приложении он добавил ServiceModel
узел в app.config
файл, но не в WPF
app.config
файл.
Что я могу сделать, чтобы это сработало?
2 ответа
Чтобы конкретно ответить на ваш вопрос, нет, в WPF нет ничего, что помешало бы вам использовать WCF для создания ссылки на веб-сервис.
Я, однако, столкнулся с проблемами (в целом) с использованием "Добавить ссылку на службу" для создания прокси и класса обслуживания.
Я бы начал с использования тестового клиента WCF, чтобы проверить, правильно ли работает ваш веб-сервис и можно ли создать общий прокси-сервер.
Как только тестовый клиент WCF сработает, я бы очистил существующую ссылку на сервис. Убедитесь, что все удалено. Затем добавьте сервисную ссылку снова.
Если у вас сложный веб-сервис или интерфейс содержит сложные структуры, вы можете использовать svcutil.exe для генерации прокси-сервера.
Это лучший ответ, который я могу дать, используя предоставленную вами информацию. Я считаю, что ваша проблема связана с генерацией прокси WCF, но не с WPF. При изучении WPF лучше всего поддерживать свой сервис как можно более простым и проверять, работает ли связь, прежде чем добавлять что-либо, что может нарушить WPF (например, передачу набора данных или структуры классов).
PS Ваш исполняемый файл app.config ДОЛЖЕН иметь раздел system.serviceModel для связи, но его отсутствие не повлияет на генерацию ссылок и прокси.
Теперь, когда вы сгенерировали API, пора начинать добавлять экземпляры классов и вызывать методы. на самом деле, это все, что нужно.
Проверьте эту статью codeproject для более подробной помощи.
Кстати, простой Google для "использования веб-сервисов в wpf" показал метрическую массу результатов.