我有一个从Web服务生成的部分类。我想补充ModelMetadata
这一类,像这样:使用ModelMetadata获取所有属性
// Automatically generated code
public partial class MyClass
{
public string FIELD_ONE ...
public DateTime? FIELD_TWO ...
}
// My code
[MetadataType(typeof(MyMetaDataClass))]
public partial class MyClass
{
}
public class MyMetaDataClass
{
[Display(Name="Field One")]
public string FIELD_ONE;
[Display(Name="Field Two")]
public DateTime? FIELD_TWO;
}
现在我想获得的MyClass
其中有元数据显示属性,即FIELD_ONE
和FIELD_TWO
的所有属性。
我试过的东西
typeof(MyClass).GetProperties().Where(p => Attribute.IsDefined(typeof(DisplayAttribute))
但当然的属性是不上MyClass
属性。我也试过:
ModelMetadata mmd = ModelMetadata.FromLambdaExpression(m => pi.GetValue(m, null), Html.ViewData);
但我得到的错误“模板只能与现场访问,访问属性,一维数组的索引,或单参数自定义索引表达式中使用。”
如果我能从MyClass
获得MyMetadataClass
,那么我可能会获得该属性的名称并从MyClass
获取同名的属性。
这是可能的,还是我吠错了树?
检查这这一点,我已经在这里 http://stackoverflow.com/a/24757520/3050647 – elia07 2014-07-15 12:18:56