2011-04-15 25 views
9

Tôi biết rằng chúng ta có thể truy cập dữ liệu meta mô hình sử dụngNhận Mẫu Metadata từ tên lớp của nó

var metaData = ModelMetadataProviders.Current.GetMetadataForType(() => Model, Model.GetType()); 

Những gì tôi đang tìm kiếm là một cách để truy cập vào mô hình siêu dữ liệu chỉ sử dụng nó tên lớp, mà không có nó là Ví dụ (có thể giống như ModelMetadataProviders.Current.GetMetadataForType (Model.GetType())). Có cách nào dễ dàng để đạt được điều đó không?

Trả lời

12

Bạn không cần một ví dụ để truy cập vào các siêu dữ liệu của một loại:

var metaData = ModelMetadataProviders 
    .Current 
    .GetMetadataForType(null, typeof(SomeViewModel)); 

Và nếu tất cả các bạn có là một chuỗi đại diện cho tên loại bạn có thể tải các loại từ chuỗi này:

var metaData = ModelMetadataProviders 
    .Current 
    .GetMetadataForType(null, Type.GetType("AppName.Models.MyViewModel")); 
+1

'Loại.GetType (" AppName.Models.MyViewModel ")' luôn trả về null, nhưng 'Type.GetType (" AppName.Models.MyViewModel, AppName, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null ")' trả về kiểu đúng. Cảm ơn vì tiền hỗ trợ! – Salamander2007

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