2010-05-05 6 views
10

Đây là một từ cảnh báo nhiều hơn một câu hỏi, nếu bạn đang sử dụng RIAServices với Custom ValidatorAttributes.Tùy chỉnh DataAnnotations với RIA Services

Đây là Senario, tôi đã tạo một tùy chỉnh DataAnnotation sẽ xác nhận một thuộc tính dựa trên việc có hay không một loạt các thuộc tính khác đã được thiết lập, chẳng hạn như; nếu Prop1 là 100 thì Prop2, Prop3 hoặc Prop4 không thể là 0 một trong số chúng phải được đặt. Tôi cũng đang sử dụng Dịch vụ RIA vì vậy tôi đã tạo tệp ValidatorAttribute của tôi .shared.cs. Sau khi viết tất cả các bài kiểm tra cho lớp helper của lớp NonBeZeroIf, tôi bắt đầu thêm các thuộc tính vào lớp Model. Đây là tất nhiên khi điều bắt đầu đi rất sai. Dịch vụ RIA đã bắt đầu ném lên trong CodeGen, với một NullReferenceException.

CreateRiaClientFilesTask -> NullReferenceException

Hóa ra có liên quan đến thực tế là tôi đã sử dụng constructor của validator để vượt qua trong các giá trị đến lớp. Bằng cách chuyển sang sử dụng cú pháp ObjectInitialization, mọi thứ đã được sửa.

Câu trả lời dường như sử dụng cú pháp ObjectInitializer khi xử lý các Dịch vụ RIA và Trình xác thực dữ liệu tùy chỉnh.

+0

Càng nhiều càng tốt Tôi đánh giá cao mục đích của OP này, bạn không phải Đặt một câu hỏi. Vấn đề với bài đăng này là nó sẽ ở lại vô thời hạn trên đầu danh sách các câu hỏi chưa được trả lời. Có lẽ bạn có thể trả lời câu hỏi của riêng bạn (vì bạn đã biết câu trả lời) và đánh dấu nó là câu trả lời? Điều này sẽ ngăn chặn bài viết của bạn cuối cùng bị đóng bởi người kiểm duyệt. –

Trả lời

0

Câu trả lời dường như là sử dụng cú pháp ObjectInitializer khi giao dịch với RIA Services và Custom DataAnnotation Validators (đó là dễ dàng hơn tôi nghĩ! ;-)