Protobuf-net serializar enumeración con valor fuera de rango
C # permite asignar cualquier valor entero a la enumeración.
Cuando trato de serializar (a través de protobuf-net) el objeto con el campo de enumeración cuyo valor está fuera de rango, se produce una excepción: no se asigna ningún valor de cable a la enumeración PersonLevel.
Mi enumeración PersonLevel no tiene el atributo Flags.
[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
¿Hay alguna facilidad para hacerlo sin cambiar los objetos comerciales (tal vez algún atributo de protobuf)?