Δεν ήταν δυνατή η φόρτωση της λειτουργίας 'xxx' επειδή έχει έναν τύπο παραμέτρου ή επιστροφής τύπου System.ServiceModel.Channels.Message ή έναν τύπο που έχει MessageContractAttribute και άλλες παραμέτρους διαφόρων τύπων. Όταν χρησιμοποιείτε το System.ServiceModel.Channels.Message ή τύπους με MessageContractAttribute, η μέθοδος δεν πρέπει να χρησιμοποιεί άλλους τύπους παραμέτρων. Έγραψα μια διεπαφή για να ανεβάσω αρχεία στο WCF και θέλω να επιστρέψω το αποτέλεσμα μεταφόρτωσης, η διεπαφή είναι η εξής:
Αυτή τη στιγμή, η εκτέλεση θα αναφέρει ένα σφάλμα εάν είναι γραμμένο ως εξής:
Τα σφάλματα θα αναφέρονται επίσης κατά την εκτέλεση!!!
Όπως είπαμε νωρίτερα, τι είναι το duplexing, υπάρχει ένα μπρος-πίσω, σωστά; Ναι, η παραπάνω μέθοδος έχει εισερχόμενες παραμέτρους και τιμές επιστροφής, υπάρχουν πήγαινε-έλα, είναι αμφίδρομη, γιατί όχι;
Χαχα, το πρόβλημα είναι ότι χρησιμοποιούμε το πρωτόκολλο μηνυμάτων, υπό αυτήν την προϋπόθεση, η μέθοδός μας δεν μπορεί να οριστεί τυχαία, χρησιμοποιώντας τη μέθοδο πρωτοκόλλου μηνύματος, εάν:
α. Εάν η σύμβαση μηνύματος χρησιμοποιείται ως εισερχόμενη παράμετρος, μπορεί να υπάρχει μόνο μία παράμετρος και οι ακόλουθοι ορισμοί είναι λανθασμένοι:
void Reconcile(BankingTransaction bt1, BankingTransaction bt2);
β. Αν δεν επιστρέψετε άκυρο, αν όχι, τότε πρέπει να επιστρέψετε ένα συμβόλαιο μηνύματος, bool UpLoadFile(TransferFileMessage tMsg) Ο ορισμός μας προφανώς δεν πληροί τις απαιτήσεις.
Πώς να το λύσετε λοιπόν; Πρέπει να ορίσουμε ένα άλλο συμβόλαιο μηνύματος για την επιστροφή.
Σε γενικές γραμμές, δεν μπορείτε να χρησιμοποιήσετε bool, string κ.λπ.
Ωστόσο, αναρωτιέμαι τι γίνεται αν υπάρχει τιμή επιστροφής???? Η λύση είναι η εξής:
|