powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / WCF и enum
7 сообщений из 7, страница 1 из 1
WCF и enum
    #35970378
hover
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ подскажите, как передать enum через WCF
Вот так пытаюсь это сделать.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
    [DataContract]
    public enum MyEnum
    {
        [EnumMember]
        Company = 1,
        [EnumMember]
        Branch = 2,
    }

    [DataContract]    
    public class MyClass
    {  
        private short _type = 1;

        public MyEnum Type
        {
            get { return (MyEnum)Enum.Parse(typeof(MyEnum), _type.ToString()); }
            set { _type = (short)value; }
        }

При передачи с клиента свойство имеет значение 0.
...
Рейтинг: 0 / 0
WCF и enum
    #35970576
WCF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WCF
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
[DataContract]
    public enum MyEnum
    {
        [EnumMember]
        Company = 1,
        [EnumMember]
        Branch = 2,
    }

    [DataContract]
[ServiceKnownType(typeof(MyEnum)]    
    public class MyClass
    {  
        private short _type = 1;

        public MyEnum Type
        {
            get { return (MyEnum)Enum.Parse(typeof(MyEnum), _type.ToString()); }
            set { _type = (short)value; }
        }
     }

[ServiceContract]
[ServiceKnownType(typeof(MyEnum)]    
...

...
Рейтинг: 0 / 0
WCF и enum
    #35970914
hover
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
WCF,

Все равно та же фигня.
...
Рейтинг: 0 / 0
WCF и enum
    #35971073
WCF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WCF
Гость
А так?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
[DataContract]
    public enum MyEnum
    {
        [EnumMember]
        Company = 1,
        [EnumMember]
        Branch = 2,
    }

    [DataContract]
[ServiceKnownType(typeof(MyEnum)]    
    public class MyClass
    {  
        private short _type = 1;

        [DataMember]
        public MyEnum Type
        {
            get { return (MyEnum)Enum.Parse(typeof(MyEnum), _type.ToString()); }
            set { _type = (short)value; }
        }
     }

[ServiceContract]
[ServiceKnownType(typeof(MyEnum)]    
...

...
Рейтинг: 0 / 0
WCF и enum
    #35971102
hover
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
WCF,

Спасибо! все работает..
...
Рейтинг: 0 / 0
WCF и enum
    #35971370
WCF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WCF
Гость
Ради познавательного интереса, поубирайте последовательно атрибуты [ServiceKnownType(typeof(MyEnum)] у Сервиса, у ДатаКонтракта.

На каком этапе отвалится?
...
Рейтинг: 0 / 0
WCF и enum
    #35972007
hover
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
WCFРади познавательного интереса, поубирайте последовательно атрибуты [ServiceKnownType(typeof(MyEnum)] у Сервиса, у ДатаКонтракта.

На каком этапе отвалится?

Да ServiceKnownType я убрал, но все работает без изменений.. И еще загадка: У меня
все передаваемые классы (которые DataContract) унаследованы от одного базового класса (он тоже DataContract), в котором не установлены атрибуты KnownType наследников. Согласно документации по идее работать не должно или я что то путаю?

И еще в статье MSDN поему "Enumeration types in DataContract" при работе с enum о ServiceKnownType вообще ничего не упоминается. Мне кажеться проблема была в том, что я забыл установить атрибут DataMember у свойства Type.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / WCF и enum
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]