c# - 如何获取对象具有的属性数?

标签 c# .net attributes

我有一个具有多个属性的类,我需要找到一种方法来计算它所具有的属性的数量。我想这样做是因为该类读取 CSV 文件,如果属性数 (csvcolumns) 少于文件中的列数,则需要发生特殊情况。这是我的类(class)的示例:

    public class StaffRosterEntry : RosterEntry
    {
        [CsvColumn(FieldIndex = 0, Name = "Role")]
        public string Role { get; set; }

        [CsvColumn(FieldIndex = 1, Name = "SchoolID")]
        public string SchoolID { get; set; }

        [CsvColumn(FieldIndex = 2, Name = "StaffID")]
        public string StaffID { get; set; }
    }

我试过这样做:

var a = Attribute.GetCustomAttributes(typeof(StaffRosterEntry));
var attributeCount = a.Count();

但是这个失败得很惨。非常感谢您提供的任何帮助(某些文档的链接、其他答案或简单的建议)!

最佳答案

请使用以下代码:

Type type = typeof(YourClassName);
int NumberOfRecords = type.GetProperties().Length;

关于c# - 如何获取对象具有的属性数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4161175/

相关文章:

c# - 针对大型 List<string> 测试大量字符串的最有效方法

c# - 使用 C# (Windows-Store App) 获取文件列表。函数有问题

python - 属性错误 : 'NoneType' object has no attribute 'split'

JQuery:显示具有特定标题的元素

java - .net 上的 java servlet 等价物是什么

javascript - 是否可以将 SVG 对象的自定义属性设置为数字而不是字符串?

C# 数据类型和数组

c# - 使用 C# 将数据发送到接受 JSON 数据的通用处理程序

c# - 如何将 DataGridView 绑定(bind)到 SQLite 数据库?

c# - 将经典 ASP 应用程序转换为 ASP.NET 有哪些有用的策略