如何从代码中访问 DisplayName 数据注释值?

发布于 2024-09-14 20:43:17 字数 371 浏览 6 评论 0原文

public static string ProductHelper(this Product p) {
    // Need to get the DisplayName value for p.Name property
}

编辑:

[MetadataType(typeof(ProductMetadata))]
public partial class Product {
    public class ProductMetadata {
        [DisplayName("Product name")]
        public object Name { get; set; }
    }
}
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; }
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

假扮的天使 2024-09-21 20:43:17
Type type = typeof(Product);
DisplayNameAttribute att = (DisplayNameAttribute)type.GetProperty("Name").GetCustomAttributes(typeof(DisplayNameAttribute), true).SingleOrDefault();

这假设该属性始终存在。可能不行的时候修改一下情况。

编辑:
要获取值 string x = att.DisplayName;

如果 Product 是基类,请改用 Type type = p.GetType();

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文