2010-03-26 14 views

Respuesta

10

Usar matriz de bytes. En un protocolo SOAP, esta matriz de bytes se serializará automáticamente utilizando la codificación base64. Su servicio web también será más descriptivo si usa una matriz de bytes. Imagínese una persona que quiere consumir su servicio web y mirando a un método cuya firma se ve así:

string GetBinaryImageFromDatabase(); 

Él podría preguntarse por qué este método devuelve una cadena y lo voy a hacer con esta cadena, mientras que si devuelve una matriz de bytes, es mucho más claro.

que he visto método de servicio Web que se parecen a esto:

string SaveCustomer(string customer); 

adivinar lo que el y los tipos de retorno customer eran: eran algunos XML patentada. No hay absolutamente ningún sentido de usar SOAP si las personas reinventan protocolos sobre él.

+0

Puntos interesantes. Discutiré esto con los otros miembros de mi equipo, para ver si tienen alguna objeción :) – Siewers

0

Una consideración es que una cadena codificada en Base64 le permite usar el "Formulario de prueba" para ayudar a depurar cualquier problema, etc. La matriz de bytes es un tipo complejo y, por lo tanto, la forma de prueba no funcionará.

+0

Pero el contenido de la cadena codificada aún sería una matriz de bytes. Si necesito depurar, siempre puedo llamar a Convert.ToBase64String (byte [] en Array). – Siewers

+0

Sí, mi punto es que para llamar/probar su método necesitará construir un arnés de prueba que pase/reciba una matriz de bytes. Si usa una cadena base64, puede llamar a su webmethod manualmente sin escribir un arnés de prueba. –

Cuestiones relacionadas