2013-03-01 4 views

Odpowiedz

4

Jeśli nie zaznaczysz wartości wyliczeniowej za pomocą atrybutu EnumMember, nie będzie ona częścią umowy danych . Oznacza to, że nie pojawi się on w wsds/contract/proxy i że klient nie będzie mógł z niego skorzystać.

+1

nie napisane, że w http://msdn.microsoft.com/en-us/library/aa347875(v=vs.110).aspx pod czatem "Proste wyliczenia" mówi, jeśli nic nie piszesz, to można go przekształcić do postaci szeregowej jeśli ustawisz flagę dla wszystkich. –

+0

To znaczy: Zezwalanie dotyczy tylko *, gdy * typ jest oznaczony przez DataContractAttribute. – user2864740

0

To niekoniecznie musi być uznana na kliencie jako członek znanego typu że jest Color ponieważ nie jesteś wyraźnie mówią, że to część umowy, a więc nie ma powodu do przestrzegania go podczas generowania pełnomocnik.

9

Po zastosowaniu do wyliczenia DataContractAttribute należy wyraźnie określić, którzy członkowie tego wyliczenia powinny zostać uwzględnione, za pomocą funkcji EnumMemberAttribute.

W obu przypadkach dwa wyrazy będą zawierać dwie różne umowy, jedną bez członków i jedną z dwoma członkami: Red i Blue.

Jeśli nie zastosujesz DataContractAttribute do wyliczenia, wszyscy członkowie tego elementu wyliczeniowego znajdą się domyślnie w umowie.

Aby uzyskać wyjaśnienie, patrz here, głównie sekcje Enumeration Member Values i Notes on Simple Enumerations.

Powiązane problemy