问题
public static string ProductHelper(this Product p) {
// Need to get the DisplayName value for p.Name property
}
EDIT:
[MetadataType(typeof(ProductMetadata))]
public partial class Product {
public class ProductMetadata {
[DisplayName("Product name")]
public object Name { get; set; }
}
}
回答1:
Type type = typeof(Product);
DisplayNameAttribute att = (DisplayNameAttribute)type.GetProperty("Name").GetCustomAttributes(typeof(DisplayNameAttribute), true).SingleOrDefault();
This assumes the attribute always exists. Modify for the case when it may not.
edit:
To get the value string x = att.DisplayName;
If Product is a base class use Type type = p.GetType();
instead.
来源:https://stackoverflow.com/questions/3485737/how-can-i-access-the-displayname-data-annotation-value-from-code