L'operazione 'xxx' non poteva essere caricata perché aveva un parametro o tipo di ritorno di tipo System.ServiceModel.Channels.Message o un tipo che conteneva MessageContractAttribute e altri parametri di diversi tipi. Quando si usano System.ServiceModel.Channels.Message o tipi con MessageContractAttribute, il metodo non deve utilizzare altri tipi di parametri. Ho scritto un'interfaccia per caricare file in WCF e voglio restituire il risultato di upload, l'interfaccia è la seguente:
A questo punto, la run segnala un errore se viene scritta come segue:
Gli errori verranno segnalati anche durante l'esecuzione!!!
Come abbiamo detto prima, cos'è il duplexing, c'è un botta e molla, giusto? Sì, il metodo sopra ha parametri in ingresso e valori di ritorno, ci sono andate e viene, è duplex, perché no?
Ahah, il problema è che usiamo il protocollo messaggio, sotto questa premessa, il nostro metodo non può essere definito casualmente, usando il metodo del protocollo messaggio, se:
a. Se il contratto messaggio viene usato come parametro in ingresso, può esserci un solo parametro, e le seguenti definizioni sono errate:
annulla Riconciliazione (BankingTransaction bt1, BankingTransaction bt2);
b. A meno che tu non restituisca null, altrimenti devi restituire un contratto di messaggio, bool UpLoadFile(TransferFileMessage tMsg). La nostra definizione ovviamente non soddisfa i requisiti.
Quindi, come risolverlo? Dobbiamo definire un altro contratto di messaggio per il ritorno.
In termini generali, non puoi usare bool, string, ecc. come valori di ritorno, puoi impostare il tipo void no return value.
Tuttavia, mi chiedo cosa succeda se ci fosse un valore di reso???? La soluzione è la seguente:
|