Tôi vẫn còn mới vào thế giới ASP.NET, vì vậy tôi có thể thoát khỏi cơ sở ở đây, nhưng cho đến nay đây là kiến thức tốt nhất của tôi (có giới hạn) !Kết quả Dịch vụ Web ASP.NET, Lớp Proxy và Chuyển đổi Loại
Cho phép nói rằng tôi có đối tượng kinh doanh chuẩn "Liên hệ" trong không gian tên Business. Tôi viết một Web Service để lấy thông tin của Contact từ một cơ sở dữ liệu và trả lại nó. Sau đó tôi viết một ứng dụng khách để yêu cầu các chi tiết đã nói.
Bây giờ, tôi cũng tạo một phương thức tiện ích có "Liên hệ" và thực hiện một số phép thuật với nó, như Utils.BuyContactNewHat()
nói. Tất nhiên, người liên hệ có loại Business.Contact
.
Tôi sau đó quay trở lại ứng dụng khách của tôi và muốn sử dụng phương pháp BuyContactNewHat
, vì vậy tôi thêm một tham chiếu đến không gian tên Utils của mình và ở đó. Tuy nhiên, một vấn đề nảy sinh với:
Contact c = MyWebService.GetContact("Rob);
Utils.BuyContactNewHat(c); // << Error Here
Kể từ khi kiểu trả về của GetContact
là MyWebService.Contact
và không Business.Contact
như mong đợi. Tôi hiểu tại sao điều này là, bởi vì khi truy cập một dịch vụ web, bạn thực sự đang lập trình chống lại lớp proxy được tạo bởi WSDL.
Vì vậy, có cách nào "dễ dàng hơn" để đối phó với loại không phù hợp này không? Tôi đã xem xét có lẽ cố gắng để tạo ra một lớp chuyển đổi chung sử dụng sự phản chiếu để đảm bảo hai đối tượng có cùng một cấu trúc, hơn là chỉ đơn giản là chuyển các giá trị từ một đến cái kia.