Die Operation 'xxx' konnte nicht geladen werden, da sie einen Parameter- oder Rückgabetyp vom Typ System.ServiceModel.Channels.Message oder einen Typ mit MessageContractAttribute und anderen Parametern besitzt von verschiedenen Arten. Bei Verwendung von System.ServiceModel.Channels.Message oder Typen mit MessageContractAttribute darf die Methode keine anderen Parametertypen verwenden. Ich habe eine Schnittstelle zum Hochladen von Dateien in WCF geschrieben und möchte das Upload-Ergebnis zurückgeben, die Benutzeroberfläche ist wie folgt:
Zu diesem Zeitpunkt meldet der Lauf einen Fehler, wenn er wie folgt geschrieben ist:
Fehler werden auch beim Ausführen gemeldet!!!
Wie wir schon sagten, was ist Doppelhaus, es gibt doch ein Hin und Her, oder? Ja, die obige Methode hat eingehende Parameter und Rückgabewerte, es gibt Ein- und Ausgänge, es ist ein Duplex, warum nicht?
Haha, das Problem ist, dass wir das Nachrichtenprotokoll verwenden; unter dieser Prämisse kann unsere Methode nicht beiläufig mit der Nachrichtenprotokollmethode definiert werden, wenn:
a. Wenn der Nachrichtenvertrag als eingehender Parameter verwendet wird, kann es nur einen Parameter geben, und die folgenden Definitionen sind falsch:
null Reconcile(BankingTransaction bt1, BankingTransaction bt2);
b. Wenn Sie nicht "void" zurückgeben, wenn nicht, müssen Sie einen Nachrichtenvertrag zurücksenden, bool UpLoadFile(TransferFileMessage tMsg). Unsere Definition erfüllt offensichtlich nicht die Anforderungen.
Wie löst man das also? Wir müssen einen weiteren Nachrichtenvertrag für die Rückgabe definieren.
Grob gesagt kannst du nicht bool, string usw. als Rückgabewerte verwenden, sondern den Typ void ohne Rückgabe setzen.
Allerdings frage ich mich, ob es einen Rendite gibt???? Die Lösung lautet wie folgt:
|