>>使用反射访问c#
中的属性属性>本文演示了如何使用C#的反射功能检索与类属性关联的属性信息。 让我们考虑带有Book
属性的Name
类,该属性装饰有自定义Author
属性。 我们的目标是提取属性名称和属性的值(作者名称)。
typeof(Book).GetProperties()
对象的数组。PropertyInfo
PropertyInfo
>检查所需类型的属性(在这种情况下为GetCustomAttributes()
)。
Author
如果找到一个Author
PropertyInfo
这是一个C#代码示例,说明了以下内容:<code class="language-csharp">public class AuthorAttribute : Attribute { public string Name { get; set; } public AuthorAttribute(string name) { Name = name; } } public class Book { [Author("Jane Austen")] public string Name { get; set; } // ... other properties } public static Dictionary<string, string> GetAuthors() { var authors = new Dictionary<string, string>(); var properties = typeof(Book).GetProperties(); foreach (var property in properties) { var attributes = property.GetCustomAttributes(true); foreach (var attribute in attributes) { var authorAttribute = attribute as AuthorAttribute; if (authorAttribute != null) { authors.Add(property.Name, authorAttribute.Name); } } } return authors; }</code>>属性的相应作者名称。 这有效地说明了反思如何允许访问与类成员关联的元数据。
以上是如何使用C#中的反射从类属性中检索属性信息?的详细内容。更多信息请关注PHP中文网其他相关文章!