Tôi đang cố gắng xây dựng một dịch vụ dữ liệu WCF theo cách thủ công bằng cách sử dụng mô hình dữ liệu POCO và tôi không thể tìm ra cách để hiển thị đúng giá trị enum
. Giả sử một mô hình đơn giản như:Sử dụng enums trong WCF Dịch vụ dữ liệu
public class Order
{
public int ID {get; set;}
public string Description {get; set;}
public OrderStatus Status {get; set;}
}
public enum OrderStatus
{
New,
InProcess,
Complete
}
Làm thế nào để bạn tiếp xúc với những thông tin có giá trị trong OrderStatus
bất động sản thông qua các dịch vụ dữ liệu OData WCF?
Nếu bạn không làm gì cả, Dịch vụ dữ liệu sẽ tạo ra lỗi thời gian chạy (enum là thuộc tính không hợp lệ). Câu trả lời duy nhất mà tôi đã nhìn thấy rằng ít nhất giải quyết các lỗi là để đánh dấu sự enum
tài sản như Ignored, chẳng hạn như:
[System.Data.Services.IgnoreProperties("Status")]
public class Order ...
này hoạt động, nhưng nó buộc bạn phải "bỏ qua" thông tin giá trị từ lớp dịch vụ. Có các tùy chọn khác để làm việc với các giá trị enum trong WCF Data Services không?
CHỈNH SỬA: Vui lòng lưu ý đây là Dịch vụ dữ liệu WCF (aka Astoria). Đây không phải là Dịch vụ WCF thô, trong trường hợp đó các câu trả lời rõ ràng hơn.
Đó là khuyến cáo để tránh sự đếm trong webservices vì họ tạo ra vấn đề tương thích ngược tinh tế. Xem http://stackoverflow.com/a/788281/52277 –