Wciąż jestem nowy w świecie ASP.NET, więc mogłem być daleko od bazy, ale jak dotąd jest to najlepsze z mojej (ograniczonej) wiedzy !Wyniki usługi sieci Web programu ASP.NET, klasy proxy i konwersja typów
Powiedzmy, że mam standardowy obiekt biznesowy "Kontakt" w przestrzeni nazw Business. Piszę usługę sieciową, aby pobrać dane kontaktu z bazy danych i zwrócić je. Następnie piszę aplikację kliencką, aby poprosić o te informacje.
Teraz też tworzę metodę użyteczności, która bierze "kontakt" i robi z nią trochę magii, jak mówi Utils.BuyContactNewHat()
. Co oczywiście ma kontakt typu Business.Contact
.
Następnie wracam do aplikacji klienckiej i chcę korzystać z metody BuyContactNewHat
, więc dodaję odniesienie do mojej nazwy Utils i tam jest. Jednak pojawia się problem z:
Contact c = MyWebService.GetContact("Rob);
Utils.BuyContactNewHat(c); // << Error Here
Ponieważ typ powrót GetContact
jest MyWebService.Contact
i nie Business.Contact
jak oczekiwano. Rozumiem, dlaczego tak jest, ponieważ podczas uzyskiwania dostępu do usługi sieciowej, faktycznie programujesz przeciwko klasie pośredniej generowanej przez WSDL.
Czy istnieje "łatwiejszy" sposób radzenia sobie z niedopasowaniem tego typu? Rozważałem być może próbę stworzenia ogólnej klasy konwertera, która używa odbicia, aby zapewnić, że dwa obiekty mają tę samą strukturę, niż po prostu przenoszenie wartości między nimi.