Trong ứng dụng của chúng tôi, chúng tôi đang sử dụng trình tạo thực thể EF4.0 và POCO Entity để tạo các thực thể từ cơ sở dữ liệu. Để áp dụng chú thích dữ liệu, chúng ta đang tạo các Giao diện và thực hiện các giao diện đó trên các lớp từng phần mà chúng ta đã tạo ra để phù hợp với lớp từng phần được tạo ra bằng cách sử dụng EF.Nhận các thuộc tính tùy chỉnh được áp dụng cho các thực thể được tạo thông qua thuộc tính MetadataType
/*Entity Generated Type*/
public partial class SomeEntity : EntityBase
{
public virtual string SomeProperty
{
get {...}
set {...}
}
}
/*Interface containing metadata*/
public interface ISomeEntityMetadata
{
[SomeCustomAttribute]
string SomeProperty { get; set; }
}
/*Partial matching class for interface*/
[MetadataType(typeof(ISomeEntityMetadata))]
public partial class SomeEntity : ISomeEntityMetadata
{
}
Bây giờ, sử dụng phản chiếu, khi chúng tôi cố gắng để có được nếu 'SomeCustomAttribute' được áp dụng trên 'SomeEntity.SomeProperty', nó sẽ trả rằng thuộc tính không được áp dụng.
Nếu chúng tôi chỉnh sửa mã được tạo và áp dụng Thuộc tính trực tiếp, nó hoạt động.
Nếu chúng ta kiểm tra các lớp một phần sáp nhập để tạo thành một kiểu đơn, nó sẽ làm.
Nếu chúng tôi kiểm tra thuộc tính MetadataType được áp dụng trên loại (sử dụng sự phản chiếu), nó là.
Ngoài ra, khi thực thể được ràng buộc với bất kỳ phần tử giao diện người dùng nào của WPF, các xác thực hoạt động như chúng nên nhưng bằng cách sử dụng sự phản chiếu, chúng tôi không thể tìm thấy Thuộc tính xác thực và/hoặc Thuộc tính tùy chỉnh được áp dụng trên thuộc tính.
Bất kỳ trợ giúp hoặc con trỏ nào sẽ cứu linh hồn.
kiểm tra điều này, tôi đã trả lời câu hỏi này tại đây http://stackoverflow.com/a/24757520/3050647 – elia07