Operácia 'xxx' sa nemohla načítať, pretože má parameter alebo typ návratu typu System.ServiceModel.Channels.Message alebo typ s atribútom MessageContractAttribute a ďalšími parametrami rôznych typov. Pri použití System.ServiceModel.Channels.Message alebo typov s MessageContractAttribute nesmie metóda používať žiadne iné typy parametrov. Napísal som rozhranie na nahrávanie súborov vo WCF a chcem vrátiť výsledok nahrávania, rozhranie je nasledovné:
V tomto čase beh hlási chybu, ak je zapísaný nasledovne:
Chyby budú hlásené aj počas behu!!!
Ako sme už spomenuli, čo je duplexing, je tam a späť tam a späť, však? Áno, vyššie uvedená metóda má prichádzajúce parametre a návratové hodnoty, sú tam príchody a odchody, je to duplex, prečo nie?
Haha, problém je v tom, že používame protokol správ, podľa tohto predpokladu nemožno našu metódu definovať len tak jednoducho, pomocou metódy protokolu správ, ak:
a. Ak sa ako prichádzajúci parameter použije smútok správy, môže existovať len jeden parameter a nasledujúce definície sú nesprávne:
neplatné Zosúladenie (BankingTransaction bt1, BankingTransaction bt2);
b. Pokiaľ nevrátite void, ak nie, musíte vrátiť zmluvu o správe, bool UpLoadFile(TransferFileMessage tMsg) Naša definícia zjavne nespĺňa požiadavky.
Tak ako to vyriešiť? Potrebujeme definovať ďalšiu smlouvu na vrátenie správ.
Zjednodušene povedané, nemôžete použiť bool, reťazec a podobne ako návratové hodnoty, môžete nastaviť void no return typ hodnoty.
Zaujímalo by ma však, čo ak existuje nejaká návratová hodnota???? Riešenie je nasledovné:
|