Operacijos 'xxx' įkelti nepavyko, nes jos parametras arba grąžinimo tipas yra System.ServiceModel.Channels.Message arba tipas, turintis MessageContractAttribute ir kitus parametrus įvairių tipų. Naudojant System.ServiceModel.Channels.Message arba tipus su MessageContractAttribute, metodas neturi naudoti jokių kitų tipų parametrų. Aš parašiau sąsają įkelti failus į WCF ir noriu grąžinti įkėlimo rezultatą, sąsaja yra tokia:
Šiuo metu paleidimas praneš apie klaidą, jei ji parašyta taip:
Apie klaidas taip pat bus pranešta veikiant!!!
Kaip minėjome anksčiau, kas yra dvipusis, yra pirmyn ir atgal, tiesa? Taip, aukščiau pateiktas metodas turi gaunamus parametrus ir grąžinimo reikšmes, yra atvykimų ir išėjimų, jis yra dvipusis, kodėl gi ne?
Haha, problema ta, kad mes naudojame pranešimo protokolą, pagal šią prielaidą, mūsų metodas negali būti apibrėžtas atsitiktinai, naudojant pranešimo protokolo metodą, jei:
a. Jei pranešimo sutartis naudojama kaip gaunamas parametras, gali būti tik vienas parametras, o šie apibrėžimai yra neteisingi:
void Reconcile(BankingTransaction bt1, BankingTransaction bt2);
b. Jei negrąžinsite negaliojančios, jei ne, turite grąžinti pranešimo sutartį, bool UpLoadFile(TransferFileMessage tMsg) Mūsų apibrėžimas akivaizdžiai neatitinka reikalavimų.
Taigi, kaip tai išspręsti? Turime apibrėžti kitą pranešimo grąžinimo sutartį.
Grubiai tariant, jūs negalite naudoti bool, string, ir tt kaip grąžinamos reikšmės, galite nustatyti void no grąžinamos vertės tipą.
Tačiau įdomu, ką daryti, jei yra grąžos vertė???? Sprendimas yra toks:
|