DataAnnotations không hoạt động với lớp bạn thân. Mã sau luôn xác thực đúng. Tại sao ?Xác thực không hoạt động khi tôi sử dụng Validator.TryValidateObject
var isValid = Validator.TryValidateObject (Khách hàng mới(), Ngữ cảnh, kết quả, đúng);
và đây là lớp bạn thân.
public partial class Customer
{
public string Name { get; set; }
public int Age { get; set; }
}
[MetadataType(typeof(CustomerMetaData))]
public partial class Customer
{
public class CustomerMetaData
{
[Required(ErrorMessage = "You must supply a name for a customer.")]
public string Name { get; set; }
}
}
Đây là một chuỗi khác có cùng câu hỏi, nhưng không có câu trả lời. link text
Tôi không hề lo lắng về điều này, nhưng tôi nghĩ bạn không nên tổ chức các lớp học. Ngoài ra tôi nghĩ rằng điều này có thể làm cho lớp CustomMetaData không thể tiếp cận mà không có từ khóa công cộng. Hãy thử di chuyển CustomerMetaData ra khỏi lớp Khách hàng và đặt nó ở chế độ công khai. – Alxandr
Nó sẽ không hoạt động ngay cả khi tôi di chuyển CustomerMetaData ra khỏi lớp Customer và khai báo là public. Tôi có mối quan tâm mà TryValidateObject hỗ trợ buddyclass (MetadataType)? – ashraf