Клиент Visual Studio wcf c # SOAP имя метода evenlope с другим регистром

#c# #visual-studio #wcf #soap #case-sensitive

#c# #visual-studio #wcf #soap #чувствителен к регистру

Вопрос:

У меня есть клиент C # WCF, который должен вызывать веб-службу WCF третьей части: беда веб-службы в том, что тип параметра равен имени метода и изменяется только с учетом регистра: когда я выполняю следующий вызов, где тип переменной lclassname имеет то же имя, что и тип переменной lclassname.имя класса метода (измените только с учетом регистра):

 var lclassName = new className()
...
...
var lreturnValue = new ClassName(lclassName);
  

Я заметил в необработанном XML-запросе, что Visual Studio делает нечто подобное, когда я пытаюсь вызвать веб-службу, используя ссылку на класс клиента.cs, созданную Visual Studio с помощью функции Add Service reference:

 <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <ClassName xmlns="">
            <ClassName...>
            
            </ClassName...>
        </ClassName...>
    </s:Body>
</s:Envelope>
  

Я отследил http-запрос SOAP raw, выполненный Visual Studio, по всей системе.Диагностика.TextWriterTraceListener в web.config.
если вы заметили Visual Studio, измените первую букву регистра типа параметра. Почему?
Я вызываю стороннюю веб-службу и не могу изменить тип параметра.
Есть ли способ сообщить Visual Studio при вызове клиента WCF через SOAP, чтобы не изменять имена методов? (Например, с некоторыми атрибутами или некоторыми параметрами в endpoint web.config)

Спасибо.

Комментарии:

1. Это зависит от того, является ли первая буква имени вашего класса прописной или строчной. Вызов службы WCF через агент генерации VS не изменит первую букву className.