Jeśli mój kontrakt wygląda następująco:W jaki sposób można zapobiec parametrowi końcowemu zwracającemu parametrowi w usłudze sieciowej WCF?
[OperationContract]
void DoSomething(int id, out string moreInfo);
ten kończy się patrząc jak:
string DoSomething(int id);
podczas importowania odniesienie usług internetowych. Czy można wpływać na automatyczną konwersję kolejności parametrów? Zaskakujące było już znalezienie wszystkich parametrów wyjściowych na początku sygnatury funkcji, ale było to nadal możliwe, ale chcielibyśmy, aby metody void były nadal nieważne. Czy to jest ograniczenie SOAP?
W tym przypadku metoda void z pojedynczym parametrem 'out' jest efektywnie metodą nieważną z poprawną wartością zwracaną. Co definiuje parametr "out", co oznacza, że nie ma wersji "poza"? –
@AdamHouldsworth ortogonalność w projektowaniu usług internetowych. Pierwotnie mieliśmy usługi, które zwróciły wartość, a które nie. Jednak każda usługa była refaktoryzowana, aby zwracać statusy. Poprzez wymuszenie dodatkowego paramu, kompilacja automatycznie zawiedzie i wiemy, co naprawić, a ponadto po prostu wygodnie jest wiedzieć, że pierwszy param jest out-paramem zawierającym statusy, niezależnie od reszty umowy. – Abel
Jestem bardzo zaskoczony i pod wrażeniem, że WCF był w stanie wygenerować proxy dla tej operacji! Jakie jest uzasadnienie używania parametru 'out' w pierwszej kolejności? – MattDavey