2010-03-02 25 views
6

Tôi hiểu rằng tôi có thể áp dụng nhiều tùy chọn để (như Name, Namespace) thuộc tính ServiceContract và cho OperationContract (Action, ReplyAction)thực hành tốt nhất cho các hợp đồng dịch vụ và dữ liệu - WCF

Cũng vậy để DataContract (Namespace) và DataMember (IsRequired, Name, Order)

Làm cách nào để xác định xem tôi có cần áp dụng một tùy chọn cụ thể hay không. Thực hành/quy ước tốt nhất tôi nên tuân theo là gì?

Trả lời

8

Không có ai "thực hành tốt nhất" tại đây. Chỉ cần hiểu tất cả các đối số khác nhau được sử dụng để làm gì.

  • Name nên được chỉ định nếu bạn muốn tên "công cộng" của dịch vụ là khác nhau từ tên lớp thực tế (hầu hết mọi người không thay đổi điều này). Nó tương tự cho các hợp đồng dữ liệu - sử dụng nó nếu bạn muốn tên được trưng ra trên SOAP/MEX khác với tên thuộc tính mà bạn sử dụng trong nội bộ.

  • Namespace là một cái gì đó bạn nên thay đổi, nếu không nó mặc định là tempuri.org - bạn nên thay thế này với một không gian tên có liên quan đến ứng dụng của bạn.

  • IsRequired phải được chỉ định nếu loại có thể vô hiệu hóa (ví dụ: string) nhưng trường thực sự được yêu cầu như một phần của hợp đồng (ví dụ: khách hàng phải có tên ... là trường bắt buộc).

  • Order chỉ thay đổi thứ tự các thuộc tính xuất hiện trong siêu dữ liệu/XML; thông thường hầu hết mọi người không bận tâm với điều này trừ khi nó được yêu cầu vì lý do tương thích.

+1

@Aaronaught - Không Tên miền có bất kỳ liên quan nào đến URL dịch vụ sẽ được lưu trữ không? Tôi biết tôi có thể chỉ định bất kỳ không gian tên nào tôi muốn, nhưng không chắc liệu đó có phải là một thực hành tốt để có một không gian tên giống như nơi lưu trữ web được đặt. – DotnetDude

+1

@DotnetDude: Không, không hẳn. Namespace chỉ là một định danh duy nhất để phân biệt 'AwesomeService' của bạn với' AwesomeService' của mọi người khác. Nếu bạn có một URL sản xuất thực sự, nó sẽ không * tổn thương * bạn để sử dụng nó (tôi làm), nhưng nó không phải là một yêu cầu. – Aaronaught

+0

Không gian tên và tên ảnh hưởng đến hình dạng của xml được tạo ra và cuối cùng là các đối tượng deserialized ở đầu kia của dây. –

0

Không có yêu cầu hoặc tiêu chuẩn nào.

Thuộc tính cung cấp các tùy chọn, tăng khả năng thông số tĩnh do MS cung cấp sẽ phù hợp với nhu cầu của bạn.

Vì vậy, tôi sẽ nói thực hành tốt nhất là hiểu các tùy chọn và cách áp dụng chúng cho các yêu cầu của bạn.

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