我有一个从 Web 服务生成的部分类。我像这样添加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
toMyMetadataClass
我可以得到它的属性名称并从MyClass
.
这是可能的,还是我叫错了树?