Ich bin immer noch neu in der ASP.NET-Welt, so dass ich hier weit weg von der Basis sein könnte, aber bis jetzt ist dies das Beste aus meinem (begrenzten) Wissen !ASP.NET-Web-Service-Ergebnisse, Proxy-Klassen und Typkonvertierung
Nehmen wir an, ich habe ein Standardgeschäftsobjekt "Kontakt" im Business Namensraum. Ich schreibe einen Webdienst, um die Informationen eines Kontakts aus einer Datenbank abzurufen und zurückzugeben. Ich schreibe dann eine Client-Anwendung, um die Details anzufordern.
Jetzt, ich auch dann eine Dienstprogramm-Methode, die eine "Kontakt" und macht etwas Magie damit, wie Utils.BuyContactNewHat()
sagen. Was natürlich der Kontakt vom Typ Business.Contact
ist.
ich dann zu meiner Client-Anwendung zurück und will die BuyContactNewHat
Methode verwenden, so dass ich hinzufügen, dass es einen Verweis auf meine Utils Namespace und es ist. Es stellt sich jedoch ein Problem mit:
Contact c = MyWebService.GetContact("Rob);
Utils.BuyContactNewHat(c); // << Error Here
Da der Rückgabetyp GetContact
von MyWebService.Contact
und nicht Business.Contact
wie erwartet. Ich verstehe, warum dies so ist, denn beim Zugriff auf einen Webdienst programmieren Sie tatsächlich gegen die von der WSDL generierte Proxyklasse.
Gibt es also einen "einfacheren" Weg, um mit diesem Typenkonflikt umzugehen? Ich überlegte, ob ich vielleicht versuchen sollte, eine generische Konverterklasse zu erstellen, die Reflektion verwendet, um sicherzustellen, dass zwei Objekte die gleiche Struktur haben, als einfach die Werte von einem zum anderen zu übertragen.