【问题标题】:Get Model Metadata from its class name从类名中获取模型元数据
【发布时间】:2011-04-15 09:26:15
【问题描述】:

我知道我们可以使用

访问模型元数据
var metaData = ModelMetadataProviders.Current.GetMetadataForType(() => Model, Model.GetType());

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

【问题讨论】:

    标签: c# asp.net asp.net-mvc asp.net-mvc-3


    【解决方案1】:

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

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

    如果你只有一个代表类型名称的字符串,你可以从这个字符串中加载类型:

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

    【讨论】:

    • Type.GetType("AppName.Models.MyViewModel") 总是返回 null,但 Type.GetType("AppName.Models.MyViewModel, AppName, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null") 返回正确的类型。感谢您的提示!
    猜你喜欢
    • 2012-06-16
    • 2015-09-06
    • 2018-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多