Se il mio contratto si presenta come segue:Come è possibile evitare che un parametro esterno finisca con il parametro di ritorno in un servizio Web WCF?
[OperationContract]
void DoSomething(int id, out string moreInfo);
questo finisce per assomigliare:
string DoSomething(int id);
quando si importa un riferimento al servizio Web. È possibile influenzare l'auto-conversione dell'ordine dei parametri? Era già sorprendente trovare tutti i parametri esterni all'inizio della firma della funzione, ma era ancora fattibile, ma vorremmo che i metodi void continuassero a essere metodi void. O si tratta di una limitazione SOAP?
In questo caso, un metodo vuoto con un singolo parametro 'out' è effettivamente un metodo non vuoto con il valore restituito corretto. Che cosa significa definire un parametro 'out' che la versione non-out non lo è? –
@AdamHouldsworth ortogonalità nella progettazione dei servizi web. Inizialmente avevamo servizi che restituivano un valore e altri no. Tuttavia, ogni servizio è stato refactored per restituire gli stati. Forzando il parametro extra, la build fallirà automaticamente e sapremo cosa risolvere dove, oltre al fatto che è semplicemente conveniente sapere sempre che il primo param è un out-param che contiene gli stati, indipendentemente dal resto del contratto. – Abel
Sono davvero molto sorpreso e impressionato dal fatto che WCF sia stato in grado di generare un proxy per quell'operazione! Qual è la logica per l'utilizzo di un parametro 'out' in primo luogo? – MattDavey