Protobuf-net serializar enum com valor fora do intervalo
C # permite atribuir qualquer valor inteiro a enum.
Quando tento serializar (via protobuf-net) o objeto com o campo enum cujo valor está fora do intervalo, ele lança uma exceção: Nenhum valor wire é mapeado para o enum PersonLevel.
Meu enum PersonLevel não possui o 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
Existe alguma facilidade para fazê-lo sem alterar os objetos de negócios (talvez quaisquer attrubutes de protobuf)?