У меня есть перечисление атрибута флага, которое находится за веб-службой следующим образом:
[Serializable,Flags]
public enum AccessLevels
{
    None = 0,
    Read = 1,
    Write = 2,
    Full = Read | Write
}
Моя проблема заключается в том, что потребитель моего веб-сервиса не имеет исходных постоянных значений перечисления. В результате клиентская сторона класса прокси-сервера имеет следующее:
{
   None = 1,
   Read = 2,
   Write = 4,
   Full = 8
}
И, таким образом, когда потребитель проверяет доступ "Чтение", это будет ложным, даже если "testItem" является "Полный"
((testItem & Svc.Read) == Svc.Read)
Как я могу правильно предоставлять флаги через веб-службу?
EDIT:
Согласно этой статье, возможно, не удастся сделать то, что я ищу. Иван Кривяков утверждает, что
Несовершенная прозрачность перечислений
Оказалось, что перечисления не такие, как как мы хотели бы, чтобы они были. Есть три липких вопроса:
- Если код на стороне сервера объявляет перечисление и назначает определенный числовой значения для его членов, эти значения не будет виден клиенту.
 - Если код на стороне сервера объявляет перечисление [Flags] с "составной" маской значения (как в White = Red | Green | Blue), это неправильно отражено на клиентская сторона.
 - Если сервер или клиент передает "незаконное" значение, которое находится за пределами объем перечисления, он вызывает исключение в XML-де-сериализаторе на другая сторона.
 
Так что я задаюсь вопросом, является ли это просто ограничением и не возможно.