Protobuf-net сериализует enum со значением вне диапазона

C # позволяет назначить любое целочисленное значение для перечисления.

Когда я пытаюсь сериализовать (через protobuf-net) объект с полем enum, значение которого выходит за пределы диапазона, возникает исключение: никакое значение провода не отображается в enum PersonLevel.

Мой enum PersonLevel не делаетАтрибут Флаги

[ProtoContract(ImplicitFields = ImplicitFields.AllFields)]
public enum PersonLevel
{
  Unknown = 1
}

[ProtoContract(ImplicitFields = ImplicitFields.AllFields)]
public class Person
{
  ...

  public PersonLevel PersonLevel { get; set; }

  ...
}
var ms = new MemoryStream();

var person = new Person
{
  ...
  PersonLevel = (PersonLevel) 500
  ...
};

Serializer.Serialize(ms, person); //No wire-value is mapped to the enum PersonLevel

Есть ли какие-либо средства, чтобы сделать это без изменения бизнес-объектов (возможно, каких-либо прототипов)?

Ответы на вопрос(2)

Ваш ответ на вопрос