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