Пользовательские атрибуты с прокси справочника услуг - PullRequest
0 голосов
/ 26 декабря 2009

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

Я пытаюсь сделать что-то, что невозможно?

Код серверной стороны:

public enum ServiceEnum
{
    [ServiceEnumTest("Boat")]item1,
    [ServiceEnumTest("Plane")]item2,
    [ServiceEnumTest("Bicycle")]item3,
    [ServiceEnumTest("Car")]item4,
    item5
}

Код на стороне клиента, сгенерированный прокси:

[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name="ServiceEnum", Namespace="http://tempuri.org/")]
public enum ServiceEnum : int {

    [System.Runtime.Serialization.EnumMemberAttribute()]
    item1 = 0,

    [System.Runtime.Serialization.EnumMemberAttribute()]
    item2 = 1,

    [System.Runtime.Serialization.EnumMemberAttribute()]
    item3 = 2,

    [System.Runtime.Serialization.EnumMemberAttribute()]
    item4 = 3,

    [System.Runtime.Serialization.EnumMemberAttribute()]
    item5 = 4,
}

1 Ответ

2 голосов
/ 26 декабря 2009

Атрибуты являются языковой функцией, и стандартного способа их представления в сообщении SOAP не существует. То, что вы пытаетесь, невозможно. Вместо этого вы можете добавить тип в качестве атрибута или написать настраиваемый сериализатор , который перемещает значение атрибута .NET в атрибут XML, но он не будет переносимым - он не будет гидратироваться обратно. другая сторона без особого труда.

...