2011-09-03 30 views

Trả lời

15

Đó là ràng buộc được xác định cho điểm cuối đã chỉ định cơ chế tuần tự hóa. Ví dụ:

  • basicHttpBindingwsHttpBinding SOAP sử dụng
  • netTcpBinding sử dụng serialization nhị phân
  • webHttpBinding có thể sử dụng XML, Json, ...

Bạn có thể đọc thêm về sự khác nhau built-in các liên kết và thuộc tính của chúng trên this article. Nhờ khả năng mở rộng của WCF, tất nhiên bạn có thể viết các ràng buộc tùy chỉnh của riêng bạn.

+0

Xà phòng không phải là cơ chế tuần tự hóa. –

15

Bạn đang trộn lẫn hai kỹ thuật với nhau.

  • serialization - làm thế nào các đối tượng được chuyển đổi sang messages - chúng tôi có trình định dạng XML và JSON sẵn out of the box (DataContractSerializer, DataContractJsonSerializer, XmlSerializer)
  • Encoding - làm thế nào thông điệp được chuyển giao - chúng tôi có ba bộ mã hóa ra khỏi hộp
    • TextMessageEncoder - cho thông điệp SOAP chuyển dưới dạng văn bản - cũng hỗ trợ MTOM và POX (Plain XML cũ) nếu phiên bản thông điệp được thiết lập để None
    • BinaryMessageEncoder - cho thông điệp XML/SOAP chuyển như b dữ liệu inary
    • WebMessageEncoder - cho XML và tin nhắn JSON trong các dịch vụ REST

Những tính năng này được sử dụng bởi các ràng buộc tiêu chuẩn. WCF hỗ trợ nhiều serialization và mã hóa như bạn muốn => bạn có thể xây dựng của riêng bạn.

+0

Có thực hiện việc tuần tự hóa nhị phân không? Tôi không muốn serializer để truyền tên tài sản mỗi và mỗi khi nó gửi ra một tài sản? – Omtara

+1

Tôi có thể chỉ định trong wshttpbinding để sử dụng dataContractJsonSerializer không? –

+2

@MichaelFreidgeim: Không. WsHttpBinding dành cho các dịch vụ Xà phòng. –

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