A 'xxx' műveletet nem lehetett betölteni, mert van egy paraméter- vagy visszatérőtípusa, amely System.ServiceModel.Channels.Message típusú, vagy olyan típus, amely MessageContractAttribute és más paramétereket tartalmaz különböző típusokból. A System.ServiceModel.Channels.Message vagy a MessageContractAttribute típusú típusok használatakor a metódus nem használhat más paramétereket. Írtam egy interfészt a fájlok feltöltésére a WCF-ben, és vissza akarom adni a feltöltési eredményt, az interfész a következő:
Ekkor a futás hibát jelent, ha az alábbiak szerint írják:
Hibákat is jelentenek futás közben!!!
Ahogy korábban is mondtuk, mi az a duplexelés, van egy oda-vissza párbeszéd, ugye? Igen, a fenti módszernek vannak bejövő paraméterei és visszaküldési értékei, vannak jönnek-mennek, duplex, miért ne?
Haha, a probléma az, hogy az üzenetprotokollt használjuk, ezen alapfeltevés szerint a módszerünk nem definiálható lazán, az üzenetprotokoll módszerrel, ha:
a. Ha az üzenetszerződést bejövő paraméterként használják, akkor csak egy paraméter lehet, és az alábbi definíciók helytelenek:
érvénytelenítés (BankingTransaction bt1, BankingTransaction bt2);
b. Ha nem térsz vissza érvénytelenül, ha nem, akkor üzenetszerződést kell visszaküldened, bool UpLoadFile(TransferFileMessage tMsg) A definíciónk nyilvánvalóan nem felel meg a követelményeknek.
Hogyan lehet megoldani? Új üzenetszerződést kell meghatároznunk a visszaküldéshez.
Nagyjából nem használhatod a bool-t, stringet stb. visszaküldési értékként, beállíthatod a void no return érték típust.
Viszont kíváncsi vagyok, mi van, ha van megtérülési értéke???? A megoldás a következő:
|