He estado tratando de usar protobuf-net con MonoTouch pero no tengo idea de cómo, y a pesar de haber escuchado que es posible, no he podido encontrar ningún tutorial o ningún ejemplo que realmente funcione.protobuf-net v2 y Monotouch: ¿Cómo se mezcla?
Marc Gravell confirmó on his blog que funciona en MonoTouch. También busqué en los blogs de las dos personas que menciona en este artículo, pero no encontré nada relacionado con protobuf.
Sin tener ninguna ventaja sobre el tema, decidí descargar protobuf-net y probarlo de todos modos. Así que creé el siguiente objeto para propósitos de prueba:
[ProtoContract]
public class ProtoObject
{
public ProtoObject()
{
}
[ProtoMember(1)]
public byte[] Bytes { get; set; }
}
y traté de enviarlo a través de WCF de un servicio que se ejecuta en Windows utilizando una interfaz [ServiceContract]
con
[OperationContract]
ProtoObject GetObject();
pero la instancia de ProtoObject recibidas en el dispositivo siempre es nulo. Esto no es realmente inesperado ya que he leído que para hacer que el trabajo de protobuf-net con WCF necesite modify the app.config/web.config.
Es un poco difícil de lograr ya que un proyecto MonoTouch no tiene app.config, pero aún no me di por vencido. Para reemplazar el app.config, intenté agregar ProtoEndpointBehavior a los comportamientos del punto final del cliente mediante programación, y allí choqué contra un muro. ProtoBuf.ServiceModel.ProtoEndpointBehavior, disponible en la implementación .NET 3.0 de protobuf-net no está disponible en la versión de iOS.
¿Cómo me iría con el uso de protobuf-net para deserializar los objetos recibidos desde un punto final WCF basado en Windows utilizando serialización protobuf-net.