Operationen 'xxx' kunne ikke indlæses, fordi den har en parameter eller returtype af typen System.ServiceModel.Channels.Message eller en type, der har MessageContractAttribute og andre parametre af forskellige slags. Når man bruger System.ServiceModel.Channels.Message eller typer med MessageContractAttribute, må metoden ikke bruge andre typer parametre. Jeg har skrevet et interface til upload af filer i WCF og vil returnere uploadresultatet, interfacet er som følger:
På dette tidspunkt vil kørslen rapportere en fejl, hvis den er skrevet som følger:
Fejl vil også blive rapporteret, når de kører!!!
Som vi sagde tidligere, hvad er duplexing, der er en frem og tilbage, ikke? Ja, ovenstående metode har indkommende parametre og returværdier, der er ind- og udgåen, det er duplex, hvorfor ikke?
Haha, problemet er, at vi bruger meddelelsesprotokollen, og under dette udgangspunkt kan vores metode ikke defineres tilfældigt, ved hjælp af meddelelsesprotokolmetoden, hvis:
a. Hvis meddelelseskontrakten bruges som en indkommende parameter, kan der kun være én parameter, og følgende definitioner er forkerte:
ugyldig afstemning(BankingTransaktion bt1, BankingTransaktion bt2);
b. Medmindre du returnerer annulleret, hvis ikke, skal du returnere en beskedkontrakt, bool UpLoadFile(TransferFileMessage tMsg). Vores definition opfylder åbenlyst ikke kravene.
Så hvordan løser man det? Vi skal definere en anden beskedkontrakt for retur.
Groft sagt kan du ikke bruge bool, string osv. som returnværdier, du kan sætte void no return value-typen.
Men jeg spekulerer på, hvad der nu er en afkastværdi???? Løsningen er som følger:
|