para serializar una clase con protobuf-net, que neet para proporcionar la clase y atributos de propiedad [ProtoContract] y [ProtoMember (n)] -, donde n es 1,2,3, .., etcEn Protobuf-net, ¿es posible serializar clases no decoradas?
Appart de la clonación a una imagen espejo de una clase, ¿es posible serializar/deserializar una clase sobre la que no tenemos control?
Por ejemplo:
usando ProtoBuf;
- Serializer.Serialize < Excepción > (OutputStream, excepción);
o
- Serializer.Serialize < Tuple < de datos, Excepción > > (OutputStream, dataWithPossibleException);
NB. dicen que Data tiene [ProtoContract]/[ProtoMember] y los otros no.
enfoques posibles:
- Sería bueno si tuviéramos "atributos" de extensión que funcionaban como los métodos de extensión. [No es posible]
- replicar la clase a nivel local y luego copiar a/desde el objeto antes de serializar/deserializar [que funcionaría, pero la productividad se cae]
- generar un archivo proto/definición externa para la clase y almacenar esto en recursos? [Alguien sabe cómo hacer esto?]
¡Gracias por anticipar esta necesidad! Tomé la opción sustituta por el momento, en que descompilé las pequeñas clases de framework y las puse en mi ensamblado. Sobre todo, intento adherirme a POCO, por lo que una única vez como esta no es un gran problema. Veré las nuevas opciones de la versión 2. – sgtz
@sgtz el método SetSurrogate debería hacer que más directa y conveniente –
por cierto: tenía una versión ligeramente mayor de v2. Entonces, pulso update en svn, y ahora puedo serializar/deserializar>. Además, tuve que eliminar + leer el binario de protobuf-net. No estoy seguro de qué fue eso, pero está funcionando bien ahora.Gracias por hacer público este proyecto ... y también, gracias a Google. Debo mencionar que en este punto, estoy * todavía * usando mi copia de Tuple, no la que está en el espacio de nombres del sistema. –
sgtz