Właśnie uderzyłem w wielką ceglaną ścianę z Paypal. Stworzyłem zwykły projekt C #, aby utworzyć kilka klas opakowujących przy użyciu ich WSDL.
Jeśli tworzysz projekt inny niż internetowy, jedyną opcją dodania wsdl jest odwołanie do usługi sieci Web. A to tworzy taki sam zestaw klas proxy, jak w przypadku referencji WWW, ale nie do końca… dodaje więcej, czego nawet ludzie z PayPal nie są świadomi.
Więc przez cały ten czas szukałem odpowiedniego interfejsu na tej liście klas proxy do użycia jako usługa (SoapBinding), a PayPalAPIAASoapBinding
nie było go, o czym informowałem nasz punkt PayPal w kontakcie.
Widziałem tylko następujące 2 interfejsy, które wydawały mi się tym, czego potrzebowałem, ponieważ nie widziałem takiego, PayPalAPIAASoapBinding
którego MOŻESZ zobaczyć w odwołaniu do usługi opartej na sieci Web:
PayPalAPIAAInterfaceClient
PayPalAPIInterfaceClient
Tak więc doszedłem do wniosku, że prawdopodobnie stworzyłem odniesienie do usługi kontra odniesienie do sieci, które jest opcją w projekcie sieci Web. Ale nie chcę, aby moje odwołanie do usługi było ściśle powiązane z moim projektem sieci Web. Dlatego właśnie stworzyłem projekt C #.
Więc co to jest, do cholery, odwołanie do usługi a co w sieci? I jak mam oddzielić to na inny projekt, jeśli odniesienie do usługi ma rzucić mi pętlę i dać mi zestaw różnych interfejsów niż odniesienie do sieci Web?
Ponadto, aby jeszcze bardziej zagmatwać, VS 2008 ma projekt aplikacji usługi sieci Web.
Więc czego używam? Używamy .NET 3.5 Framework i jesteśmy nie gotowy, aby przejść do WCF . Czy mogę więc nadal używać nowego odwołania do usługi, nawet jeśli nie korzystam z WCF, czy co? Jeśli używasz platformy .NET 3.5, a nie programu WCF, i nadal chcesz korzystać z podstawowych usług sieci Web, czy nadal korzystasz z trasy odwołania do usługi i po prostu nie używasz struktury WCF? Czy to znaczy, czy może być nadal używany jako odwołanie do sieci .NET 2.0, tylko że otrzymasz całkowicie inną generację WSDL?
Odpowiedzi:
Add Web Reference to przestarzała technologia ASP.NET webservices (ASMX) (używająca tylko XmlSerializer do swoich rzeczy) - jeśli to zrobisz, otrzymasz klienta ASMX dla usługi sieciowej ASMX. Możesz to zrobić w prawie każdym projekcie (aplikacja internetowa, witryna internetowa, aplikacja konsolowa, Winforms - możesz to nazwać).
Dodaj odwołanie do usługi to nowy sposób robienia tego, dodając odwołanie do usługi WCF, które zapewnia znacznie bardziej zaawansowany, znacznie bardziej elastyczny model usługi niż zwykłe stare elementy ASMX.
Ponieważ nie jesteś jeszcze gotowy do przejścia do WCF, możesz również dodać odwołanie do sieci Web w starym stylu, jeśli naprawdę musisz: kiedy wykonujesz „Dodaj odwołanie do usługi”, w wyświetlonym oknie dialogowym kliknij przycisk [Zaawansowane ] w lewym rogu przycisku:
iw następnym oknie dialogowym, które się pojawi, wybierz przycisk [Dodaj odniesienie do sieci] u dołu.
źródło
Jeśli dobrze rozumiem twoje pytanie:
Aby dodać odwołanie do usługi sieci Web .net 2.0 zamiast odwołania do usługi WCF, kliknij prawym przyciskiem myszy projekt i kliknij opcję „Dodaj odwołanie do usługi”.
Następnie kliknij „Zaawansowane…” w lewym dolnym rogu okna dialogowego.
Następnie kliknij „Dodaj odwołanie do sieci…” w lewym dolnym rogu następnego okna dialogowego.
Teraz możesz dodać zwykłe odwołanie do sieci SOAP, jakiego szukasz.
źródło
Dodanie odwołania do usługi umożliwia utworzenie klienta WCF, którego można używać do komunikowania się ze zwykłą usługą sieci Web, pod warunkiem, że używasz odpowiedniego powiązania. Dodanie odsyłacza internetowego pozwoli na utworzenie tylko odwołania do usługi sieciowej (tj. SOAP).
Jeśli masz absolutną pewność, że nie jesteś gotowy na WCF (naprawdę nie wiesz, dlaczego), powinieneś utworzyć zwykłe odwołanie do usługi sieci Web.
źródło
W końcu obaj robią to samo. Istnieją pewne różnice w kodzie: usługi sieci Web nie dodają głównej przestrzeni nazw projektu, ale odwołanie do usługi dodaje klasy usług do przestrzeni nazw projektu.
ServiceSoapClient
Klasa dostaje innego nazewnictwa, co nie jest ważne. Podczas pracy z TFS wolę używać odwołania do usługi, ponieważ działa lepiej z kontrolą źródła. Oba działają z protokołami SOAP.Uważam, że lepiej jest korzystać z odniesienia do usługi, ponieważ jest on nowy i dzięki temu będzie lepiej utrzymywany.
źródło