Operace 'xxx' nemohla být načtena, protože má parametr nebo typ návratu typu System.ServiceModel.Channels.Message nebo typ s MessageContractAttribute a dalšími parametry různých typů. Při použití System.ServiceModel.Channels.Message nebo typů s MessageContractAttribute nesmí metoda používat žádné jiné typy parametrů. Napsal jsem rozhraní pro nahrávání souborů ve WCF a chci vrátit výsledek nahrávání, rozhraní je následující:
V tuto chvíli bude běh hlásit chybu, pokud je zapsán následovně:
Chyby budou hlášeny také při běhu!!!
Jak jsme už řekli, co je duplexing, je to tam a zpět, že? Ano, výše uvedená metoda má příchozí parametry a návratové hodnoty, jsou tam příchody a odchody, je to duplex, proč ne?
Haha, problém je, že používáme protokol zpráv, podle tohoto předpokladu nelze naši metodu definovat jen tak náhodně, pomocí metody protokolu zpráv, pokud:
a. Pokud je smlouva zprávy použita jako příchozí parametr, může existovat pouze jeden parametr a následující definice jsou nesprávné:
neplatné Smíření (BankingTransaction bt1, BankingTransaction bt2);
b. Pokud nevrátíte neplatné, pokud ne, musíte vrátit smlouvu o zprávě, bool UpLoadFile(TransferFileMessage tMsg) Naše definice zjevně nesplňuje požadavky.
Tak jak to vyřešit? Musíme definovat další smlouvu o zprávách pro vrácení.
Zhruba řečeno, nemůžete použít bool, string atd. jako návratové hodnoty, můžete nastavit typ hodnoty bez návratu.
Ale zajímalo by mě, co když existuje výnosná hodnota???? Řešení je následující:
|