Convertir NSData a base64 codificada Y una matriz de bytes en C #

Estoy implementando la compra en la aplicación para nuestra aplicación de iOS para varias suscripciones renovables. Cuando se completa el pago, debemos enviar la información de la transacción a nuestro server (nube) para registrar la información, de modo que podamos verificar el recibo en un intervalo establecido para garantizar que la suscripción sea válida, no cancelada / reembolsada o renovada. Vamos a hacer las llamadas JSON desde el server en un intervalo establecido para hacerlo a través de la guía de compras en la aplicación y nuestro secreto compartido, aún no hemos llegado a eso, pero antes de hacerlo necesitamos tener los datos relevantes de la compra , es decir, el Recibo de transacción que es un object NSData.

Queremos enviar dos parameters a nuestro service web para TransactionReceipt (entre otros artículos, como el ProductoID adquirido, etc.). Queremos enviar esto como un valor base64 codificado que es lo que creemos que debe enviarse en la request de validation de JSON, por lo que lo almacenaremos en SQL Server.

HOw, usando MonoTouch / C # ¿podemos convertir el NSData "TransactionReceipt" a base64encoded y también un byte []?

Gracias.

Hay dos maneras fáciles de get datos de NSData , utilizando una Stream o las properties Bytes y Length . La versión de transmisión se vería así:

 public byte[] ToByte (NSData data) { MemoryStream ms = new MemoryStream (); data.AsStream ().CopyTo (ms); return ms.ToArray (); } 

la versión de Bytes y Length sería:

 public byte[] ToByte (NSData data) { byte[] result = new byte[data.Length]; Marshal.Copy (data.Bytes, result, 0, (int) data.Length); return result; } 

Obtener la cadena de salida base64 sigue siendo idéntica:

 public string ToBase64String (NSData data) { return Convert.ToBase64String (ToByte (data)); }