从类名获取模型元数据

Sal*_*007 9 c# asp.net asp.net-mvc asp.net-mvc-3

我知道我们可以使用访问模型元数据

var metaData = ModelMetadataProviders.Current.GetMetadataForType(() => Model, Model.GetType());
Run Code Online (Sandbox Code Playgroud)

我正在寻找的是一种只使用它的类名访问模型元数据的方法,没有它的实例(可能类似于ModelMetadataProviders.Current.GetMetadataForType(Model.GetType())).有没有一种简单的方法来实现这一目标?

Dar*_*rov 14

您不需要实例来访问类型的元数据:

var metaData = ModelMetadataProviders
    .Current
    .GetMetadataForType(null, typeof(SomeViewModel));
Run Code Online (Sandbox Code Playgroud)

如果您拥有的是表示类型名称的字符串,则可以从此字符串加载类型:

var metaData = ModelMetadataProviders
    .Current
    .GetMetadataForType(null, Type.GetType("AppName.Models.MyViewModel"));
Run Code Online (Sandbox Code Playgroud)