gpt4 book ai didi

c# - 检索自定义属性参数值?

转载 作者:太空狗 更新时间:2023-10-29 17:28:37 24 4
gpt4 key购买 nike

如果我已经创建了一个属性:

public class TableAttribute : Attribute {
public string HeaderText { get; set; }
}

我将其应用于我在一个类中的一些属性

public class Person {
[Table(HeaderText="F. Name")]
public string FirstName { get; set; }
}

在我看来,我有一个显示在表格中的人员列表。我如何检索 HeaderText 的值以用作我的列标题?像...

<th><%:HeaderText%></th>

最佳答案

在这种情况下,您首先要检索相关的 PropertyInfo,然后调用 MemberInfo.GetCustomAttributes (传入您的属性类型)。将结果转换为属性类型的数组,然后照常获取 HeaderText 属性。示例代码:

using System;
using System.Reflection;

[AttributeUsage(AttributeTargets.Property)]
public class TableAttribute : Attribute
{
public string HeaderText { get; set; }
}

public class Person
{
[Table(HeaderText="F. Name")]
public string FirstName { get; set; }

[Table(HeaderText="L. Name")]
public string LastName { get; set; }
}

public class Test
{
public static void Main()
{
foreach (var prop in typeof(Person).GetProperties())
{
var attrs = (TableAttribute[]) prop.GetCustomAttributes
(typeof(TableAttribute), false);
foreach (var attr in attrs)
{
Console.WriteLine("{0}: {1}", prop.Name, attr.HeaderText);
}
}
}
}

关于c# - 检索自定义属性参数值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3925686/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com