【发布时间】:2011-09-11 15:43:21
【问题描述】:
我正在使用一个名为 filehelpers 的工具,它为文件导入而动态定义了一个类。类文件可能如下所示:
[DelimitedRecord(",")]
[IgnoreFirst(1)]
public class TestNoPrimaryKey
{
[FieldConverter(ConverterKind.Decimal, ".")]
[FieldQuoted()]
public decimal Value;
[FieldQuoted('"', QuoteMode.OptionalForRead, MultilineMode.AllowForRead)]
public String aString;
}
根据我所见,这是在代码中正确创建的。接下来,我需要创建一个可比较格式的数据表,以便进行 SQL 插入。通过对 SO 的善意帮助,我得到了接受类型(上面定义)并声称为我生成类型化数据表列的代码:
public static DataTable TypeToEmptyDataTable(Type myType)
{
DataTable dt = new DataTable();
foreach (PropertyInfo info in myType.GetProperties())
{
dt.Columns.Add(new DataColumn(info.Name, info.PropertyType));
}
return dt;
}
不幸的是,它没有找到任何属性并返回一个没有列的数据表。现在我在想——如果得到;放;类中未指定等,也许它们本身不是“属性”。也许 getMembers 是我需要的?我试过了,但返回 info.MemberType 不起作用。
关于如何从我的班级中获取名称/类型的任何想法?我不相信我可以添加 get/set,因为我正在使用的 filehelpers 工具需要该类布局。
谢谢!
【问题讨论】:
标签: c# class reflection properties