De operatie 'xxx' kon niet worden geladen omdat deze een parameter- of retourtype heeft van het type System.ServiceModel.Channels.Message of een type met MessageContractAttribute en andere parameters van verschillende soorten. Bij gebruik van System.ServiceModel.Channels.Message of types met MessageContractAttribute, mag de methode geen andere typen parameters gebruiken. Ik heb een interface geschreven om bestanden in WCF te uploaden en wil het uploadresultaat teruggeven; de interface is als volgt:
Op dit moment zal de run een foutmelding geven als deze als volgt wordt geschreven:
Fouten worden ook gerapporteerd tijdens het uitvoeren!!!
Zoals we eerder zeiden, wat is duplexen, is er een heen en weer, toch? Ja, de bovenstaande methode heeft binnenkomende parameters en retourwaarden, er zijn in- en uitgaan, het is een duplex, waarom niet?
Haha, het probleem is dat we het berichtprotocol gebruiken, onder dit uitgangspunt kan onze methode niet casual worden gedefinieerd, met de berichtprotocolmethode, als:
a. Als het berichtcontract als binnenkomende parameter wordt gebruikt, kan er slechts één parameter zijn, en de volgende definities zijn onjuist:
ongeldig verzoening (BankingTransactie bt1, BankingTransactie bt2);
b. Tenzij je ongeldig retourneert, zo niet, dan moet je een berichtcontract teruggeven, bool UpLoadFile(TransferFileMessage tMsg). Onze definitie voldoet uiteraard niet aan de vereisten.
Dus hoe los je het op? We moeten een ander berichtcontract definiëren voor het retourneren.
Grofweg kun je bool, string, enzovoort niet als retourwaarden gebruiken, je kunt het void no return value type instellen.
Toch vraag ik me af wat er is als er een opbrengstwaarde is???? De oplossing is als volgt:
|