Я использую инструмент под названием 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;
}
К сожалению, он не находит никаких свойств и возвращает данные без столбцов. Теперь я думаю - если получить; задавать; etc не указан в классе, может быть, они не являются «свойствами» как таковыми. Может быть, getMembers - это то, что мне нужно? Я пробовал это, но возвращая info.MemberType не работал.
Есть мысли о том, как вывести имена / типы из моего класса? Я не верю, что могу добавить get / set, потому что этот макет класса требуется для инструмента filehelpers, который я использую.
Спасибо!