2011-02-11 16 views

Trả lời

6

IIRC, "có" (chỉ có thông số DataSet), nhưng cũng "bạn không nên"; trong khi .NET có thể biết cách xử lý nó, các dịch vụ web có nghĩa là tương thích với nhau dựa trên các thực thể xml; a DataSet (ngay cả khi được xê-ri hóa dưới dạng xml) là khoảng cách xa như bạn có thể nhận được. IMO, bạn nên viết một số lớp cơ bản đại diện cho mô hình của mình và hiển thị các dịch vụ web đó vì chúng có thể được biểu diễn đúng trong xsd cho mục đích SOAP.

+0

+1 không tất cả mọi thứ đó là kỹ thuật có thể cũng là một ý tưởng tốt ... –

+0

1 mặc dù tôi đăng câu trả lời của tôi để sử dụng ReadXML và WriteXml phương pháp nhưng tôi vẫn sẽ đi với câu trả lời của bạn để sử dụng các lớp học riêng biệt để truyền dữ liệu. – JPReddy

+0

@Marc Gravell: làm thế nào tôi có thể vượt qua tập dữ liệu từ android đến dịch vụ xà phòng có bất kỳ setps cho điều đó? –

2

Việc chuyển Tập dữ liệu sang dịch vụ web không phải là một ý tưởng hay. Thay vào đó, hãy sử dụng các phương thức ReadXML hoặc WriteXML của DataSet để chuyển dữ liệu tới webservice và đọc nó ở cuối webservice.

Chỉnh sửa: Nếu có thể tạo các lớp riêng biệt như Marc Grawell nói, nếu điều đó không khả thi cho bạn (đó là trường hợp hiếm hoi) thì bạn có thể sử dụng các phương pháp trên để truyền dữ liệu để tiếp cận tốt hơn.

1

Marc là đúng về tập dữ liệu. Nó có lẽ là một trong những nguyên tắc thiết kế tồi tệ nhất bạn có thể làm. Tuy nhiên bạn không nên xây dựng các datacontracts của bạn theo cách bạn đại diện cho bạn mô hình. Các thông báo SOAP bạn xây dựng nên được định nghĩa là các thông điệp. Bạn không gửi các đối tượng qua dây nhưng thông báo SOAP. Sau đó, bạn có thể sử dụng một trong các mô hình đối tượng của bạn bị đóng gói bởi thông điệp đó, nhưng không gửi nó như một đối tượng.

Thông báo làm việc dựa trên cho phép bạn kiểm soát nhiều hơn đối với những thứ như tiêu đề liên quan và lỗi.

http://msdn.microsoft.com/en-us/library/ms734675.aspx

+0

Một lưu ý phụ: ở trên chủ yếu liên quan đến WCF; các công cụ vv cho * vanilla * asp.net web-dịch vụ là ít mạnh mẽ hơn –

+0

Có thực sự, điều này chỉ có thể được thực hiện bằng cách sử dụng một khuôn khổ mạnh mẽ hơn như WCF. –

Các vấn đề liên quan