.NET WSDL Generation xs: имя выбора Перечисления выбора - PullRequest
4 голосов
/ 20 апреля 2011

Я генерирую наш WSDL веб-сервисов Java и затем импортирую его в наше приложение C # каждый раз, когда я вносю изменения. Каждый раз, когда это делается, элементы xs:choice регенерируются, но часто с другим номером, в зависимости от того, какой из них генерируется первым. Например, скажем, когда я импортирую WSDL, он генерирует ItemChoiceType1 и ItemChoiceType2. В следующий раз, когда я импортирую WSDL (после изменений), он переключит ItemChoiceType1 и ItemChoiceType2, поэтому мне придется перекодировать места, где я использовал эти ItemChoiceType s. Есть ли способ переименовать или указать имя для этих конструкций или заставить их генерировать один и тот же способ каждый раз?

Спасибо

Ответы [ 2 ]

0 голосов
/ 30 ноября 2011

Таким образом, этот объект (myObject) имеет свойство (myProperty), тип которого может изменяться во время сборки и значения которого назначаются из Enum.Используйте эту функцию установки свойства:

/// Установите значение свойства из Enum /// приватное статическое void propertySetter (Тип typeNeeded, объект targetObject, string propName, string fieldName) {var theDesiredValue = Enum.Parse (typeNeeded,fieldName);

    Type t = targetObject.GetType();
    PropertyInfo info = t.GetProperty(propName);
    if ((info == null) || (!info.CanWrite))
        return;
    info.SetValue(targetObject, theDesiredValue, null);
    return;

}

// использование propertySetter (myObject.myProperty.GetType (), myObject, "myProperty", "enumValue");

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

Это стандартное поведение WSDL.EXE. Поскольку элементы xs: choice являются неназванными последовательностями, они получают имя, сгенерированное WSDL.EXE.

Насколько мне известно, на стороне .NET не существует обходного пути, которое не будет отменено, если вы повторно импортируете WSDL.

Если у вас есть некоторый контроль над Java WSDL, вы можете указать complexTypes для обтекания последовательностей и указать имя для каждого типа. Это может привести к созданию более полезного WSDL, с которым вы можете поэкспериментировать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...