Изменить регистр в справочнике услуг WCF - PullRequest
0 голосов
/ 26 декабря 2010

Я создаю сервисную ссылку на веб-сервис, написанный на Java.Сгенерированные классы теперь следуют соглашению Java-оболочек, используемому в веб-службе, например, имена классов - camelCase, а не PascalCase.

Есть ли способ получить желаемый корпус из ссылки на службу?

CLARIFICATION:

С помощью сервисов на основе WSE можно изменить сгенерированный файл Reference.cs для предоставления стандартного корпуса .NET и использовать атрибут XmlElementAttribute для сопоставления с именами Java, представленными внешней веб-службой, например:

[System.Xml.Serialization.XmlElementAttribute("resultType", Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
[System.Runtime.Serialization.DataMember]
public virtual MyResultType ResultType
{ ... }

Не очень удобен в обслуживании без написания пользовательского кода для генерации прокси-кода или его изменения после того, как он был сгенерирован.

Мне нужен один или несколько вариантов представления созданного WCFклиентский прокси для вызова приложений с использованием соглашений об использовании оболочки .NET, достигнув того же, что и я ранее с WSE.Надеюсь, с меньшим ручным усилием.

1 Ответ

0 голосов
/ 27 декабря 2010

Ну, поскольку ваши прокси-клиенты WCF частичные классы , вы всегда можете добавить второй файл для того же класса, который реализует PascalCasedMethodName для каждого javaCasedMethodName, а затем просто вызвать метод Java от вашего нового метода.

public partial class MyClientProxy
{ 
   ......
   public MyResultType GetResultType(string inputParam)
   { 
       return this.getResultType(inputParam);
   }
   ......
}

Кажется, немного излишним - но это действительно должно работать, я думаю. Поскольку ваш код хранится в отдельном файле, он не будет перезаписан, если вы заново создадите клиентский прокси - и, поскольку это вторая часть частичного класса, он будет «объединен» с определением класса для вашего клиентского кода. позвонить.

...