Переопределить веб-службу, использующую типы перечислений - PullRequest
1 голос
/ 06 апреля 2011

Я на самом деле использую веб-сервис в консольном приложении на C # .NET. И этот сервис написан на PHP, и у меня нет источников.Так что в типах Enum у них есть все, что они хотят: "?"""цифры, строка ...

И поэтому, когда это интерпретируется моим приложением, у меня есть: Item, Item0 ... с атрибутом XmlAttribute.

Что я хочу знать, так это: возможно ли этоиметь класс, который переопределяет эти перечисления, чтобы заменить "точку" на "."и другие, которые не удаляются каждый раз, когда я обновляю свою веб-ссылку?

Спасибо за ваш ответ

1 Ответ

0 голосов
/ 06 апреля 2011

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

Может быть, это решение для вас:

Когда создается ссылка на службу, генерируемый файл .cs является частичным классом. Вы можете создать себе другой частичный класс с тем же пространством имен. В этом классе вы можете создать метод или свойство, которое возвращает преобразованный тип enumtype. Этот файл не будет перезаписан при обновлении ссылки на службу.

Пример:

(Созданный справочный класс услуг)

public partial class ServiceReferenceComplexType
{
    public enum EnumValues
    {
        Item0,
        Item1,
        Item2
    }
}

(Самостоятельно созданный частичный класс)

public partial class ServiceReferenceComplexType
{
    public string GetCorrectEnumValue()
    {
        // Do your enum logic magic.
        EnumValues.Tostring();
    }
}

Теперь вы можете использовать метод ServiceReferenceComplexType.GetCorrectEnumValue () для получения вашего значения.

...