2010-05-21 8 views
6

E 'una buona pratica per restituire un byte [] in un servizio WCF che sarà invocato da molte applicazioniTornando un byte [] in servizio WCF

sotto è il codice

public byte[] GetDoc(string docParam) 
{ 
    byte[] doc; 
    doc = GenerateDoc(docParam); 
} 

Grazie

+0

Se inserisci codice o XML, ** per favore ** evidenzia quelle righe nell'editor di testo e fai clic sul pulsante "codice" (101 010) sulla barra degli strumenti dell'editor per formattarlo in modo appropriato e evidenziare la sintassi! –

+2

Thnks marc_s. Lo farà – acadia

risposta

2

È buona pratica considerare il codice comune in un metodo conveniente in modo che molti chiamanti possano chiamare questo metodo conveniente. Questo è indipendentemente dal tipo di ritorno. Se i chiamanti devono manipolare lo byte[], questo può diventare conveniente ed eliminare il codice ridondante.

A proposito, per quanto riguarda il codice che hai postato, è quel codice reale o solo un esempio? Se è il codice reale:

  1. Non verrà compilato, perché non restituisce un byte[].
  2. Se si dovesse chiamare return doc; come ultima riga, perché GenerateDoc() all'interno di GetDoc()? GetDoc() in realtà non fornisce alcun vantaggio reale.
+0

Khnle, grazie per la tua risposta. Questo è solo un codice di prova. – acadia

0

Viene utilizzato quando si desidera trasferire un buffer binario ed eseguire anche il trasferimento di dati di grandi dimensioni tramite la codifica MTOM (impostata sulla configurazione Binding). Come eseguire il trasferimento di grandi quantità di dati found here.

2

È sicuramente possibile restituire byte[] e WCF consente di farlo utilizzando la codifica MTOM.

Se la dimensione del buffer binario è grande, è possibile utilizzare WCF streaming. In questo caso si restituisce il tipo di dati Stream e si legge da quello Stream sul lato client.