2011-04-15 20 views
9

Model Meta Verilerini sınıf adından alın

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

kullanarak model meta verisine erişebileceğimizin farkındayım. Aradığım şey, model metadatasına, yalnızca sınıf adı kullanılarak değil, modele (belki de ModelMetadataProviders.Current gibi bir şey) erişmenin bir yoludur. GetMetadataForType (Model.GetType())). Bunu başarmanın kolay bir yolu var mı?

cevap

12

:

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

Ve elinizdeki tüm tür adı temsil eden bir dize ise bu dizeden türünü yükleyebilir:

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

'Type.GetType ("AppName.Models.MyViewModel") ', her zaman, boş dönüş ama' Type.GetType ("AppName.Models.MyViewModel, Uygulama Adı, sürüm 1.0.0.0, kültür = nötr, PublicKeyToken = null ")', doğru türü döndürür. Bahşiş için teşekkürler! – Salamander2007

İlgili konular