2010-03-26 10 views

risposta

10

Utilizzare la matrice di byte. Su un protocollo SOAP questo array di byte verrà automaticamente serializzato usando la codifica base64. Il tuo servizio web sarà anche più descrittivo se usi un array di byte. Immaginate qualcuno che vuole consumare il servizio web e guardando un metodo la cui firma appare così:

string GetBinaryImageFromDatabase(); 

Egli potrebbe chiedersi perché questo metodo restituisce una stringa e che cosa sto andando a che fare con questa stringa, mentre se restituisce un array di byte è molto più chiaro.

ho visto metodo di servizio web che assomigliano a questo:

string SaveCustomer(string customer); 

Indovinate un po 'le e le tipologie di ritorno customer erano: erano un po' XML proprietario. Non ha assolutamente senso utilizzare SOAP se le persone reinventano i protocolli su di esso.

+0

Punti interessanti. Discuterò con gli altri membri della mia squadra, per vedere se hanno obiezioni :) – Siewers

0

Una considerazione è che una stringa codificata Base64 consente di utilizzare il "Modulo di test" per aiutare a risolvere eventuali problemi, ecc. La matrice Byte è un tipo complesso e quindi il modulo di test non funzionerà.

+0

Ma il contenuto della stringa codificata sarebbe ancora un array di byte. Se ho bisogno di eseguire il debug, potrei sempre chiamare Convert.ToBase64String (byte [] inArray). – Siewers

+0

Sì, il mio punto è puramente che per chiamare/testare il metodo è necessario costruire un cablaggio di prova che passa/riceve un array di byte. Se si utilizza una stringa base64, è possibile chiamare il proprio webmethod manualmente senza scrivere un cablaggio di test. –

Problemi correlati