protobuf.net y serialización condicional

Estamos utilizando protobuf.net para serializar las clases entre dispositivos móviles y servicios de back-end, pero ahora necesitamos ajustar lo que se envía al cliente en función del "contexto" del usuario.

Normalmente haríamos esto implementando la interfaz ISerializable y veremos el valor del contexto para luego decidir qué serializar. De forma similar, en el constructor deserializaríamos los valores proporcionados.

Pero parece que ISerializable no está implementado / no es compatible (puedo ver por qué) para protobuf.net, por lo que hemos resuelto esto tomando los enfoques 'ShouldSerialize *' y 'OnSerializing'. Sin embargo, esto significa que tenemos que almacenar el StreamingContext en cada clase, lo que no nos hace sentir bien. Podríamos ponerlo en un global, pero esto tampoco parece correcto.

¿Hay una mejor manera de lograr lo que queremos, por ejemplo? La serialización solo usa el formato protobuf.net pero, ¿en qué se serializa la influencia de un contexto proporcionado externamente?

Respuestas a la pregunta(1)

Su respuesta a la pregunta