Динамически изменить пространство имен SoapTypeAttribute - PullRequest
1 голос
/ 08 сентября 2011

У меня проблема с сервисными ссылками visual studio.

У меня есть клиент, который дает мне файл WSDL для работы с php. Я сделал ссылку на службу его ClassLibrary wsdl в моем проекте. Ниже приведена часть сгенерированного прокси-кода

[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.1")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.SoapTypeAttribute(Namespace="http://127.0.0.1:88/webservices/wsdl")] public partial class loginReturn : object, System.ComponentModel.INotifyPropertyChanged {

Моя проблема в том, что wsdl is может быть установлен на другом сервере для второго клиента. Таким образом, адрес wsdl установлен в моем app.config

Я сделал тест, изменив порт сервера. Ошибка Моя проблема - это пространство имен SoapTypeAttribute

[System.Xml.Serialization.SoapTypeAttribute(Namespace="http://127.0.0.1:88/webservices/wsdl")]

Как можно изменить это значение атрибута в соответствии с адресом сервера, потому что у меня есть эта ошибка

Ошибка десериализации тела ответного сообщения для операции 'getlogin' ..

для этого метода

loginReturn t =  service.Getlogin("username", "pwd");

Спасибо за вашу помощь

Ответы [ 2 ]

0 голосов
/ 08 сентября 2011

Я решил проблему.

Проблема была на стороне сервера, а не на стороне клиента. Мой клиент регенерировал wsdl на каждом сервере, поэтому сигнатура измененного wsdl

0 голосов
/ 08 сентября 2011

Атрибут вызывается этим "127.0.0.1:82/moodle/wspp/wsdl" пространством имен в вашем файле wsdl. Это может быть любое значение, если оно уникально, обычно используются URL-адреса. Пока это то же самое на обоих серверах, настройка URL для прокси-класса для веб-службы должна работать например,

MyMroxyClass.Url = ConfigurationManager.AppSettings["MyServiceURL"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...