2010-11-05 31 views
7

Tôi có một hệ thống máy khách/máy chủ mà một trong các cuộc gọi dịch vụ được đặt tên sai trên máy chủ cần được ngừng sử dụng và được thay thế bằng cuộc gọi mới, được gọi tên tốt hơn. Có một số thủ tục tiêu chuẩn để phản đối các cuộc gọi dịch vụ cũ như đăng nhập nó sử dụng hoặc trả lại một lỗi ngoại lệ hoặc một cái gì đó?Thực hành tiêu chuẩn cho việc phản đối một cuộc gọi dịch vụ WCF là gì?

cảm ơn, Đánh dấu

Trả lời

9

Bạn không nên đổi tên. Bạn nên đánh dấu nó là lỗi thời với thuộc tính sau:

[Obsolete("This is a message describing why this method is obsolete")] 

và chỉ định phương thức mới hơn để gọi là gì.

Bằng cách này, bất kỳ khách hàng nào vẫn sử dụng tính năng này sẽ tiếp tục hoạt động. Cần lưu ý rằng thuộc tính này sẽ ẩn các thuộc tính/phương thức từ siêu dữ liệu dịch vụ, vì vậy bất kỳ khách hàng/khách hàng nào tạo hoặc cập nhật tham chiếu đến dịch vụ này sẽ mất hoàn toàn thuộc tính/phương pháp và buộc phải không sử dụng nó.

+0

Tôi đoán tôi không có nghĩa là đổi tên. Chúng tôi đã tạo một cuộc gọi dịch vụ có tên tốt hơn và để lại cuộc gọi cũ ở đó. – MStodd

+0

Trong trường hợp này, chỉ cần đánh dấu phương thức cũ là lỗi thời và có thể thay đổi việc triển khai để trỏ đến mã mới (nếu thực sự có một số mã mới). Nhưng đừng thay đổi chữ ký của phương thức. –

+0

Hãy lưu ý rằng thuộc tính ObsoleteAttribute không ảnh hưởng đến các lớp proxy của khách hàng do Visual Studio tạo ra (tôi đoán đó cũng đúng với các lớp được tạo bởi SvcUtil.exe). I E. Nó không cung cấp cho khách hàng của bạn với bất kỳ dấu hiệu cho thấy phương pháp này không được chấp nhận. – xr280xr

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