Я знаю, что это старый вопрос, но я сам столкнулся с той же проблемой и потратил некоторое время на поиски решения, поэтому я решил поделиться своими выводами.
Если вы используете FileHelpers RunTime Records для создания определения, вы можете заполнить то же определение с помощью отражения.
Например, если вы создаете определение
DelimitedClassBuilder cb = new DelimitedClassBuilder("Customers", ",");
cb.AddField("StringField", "string");
Type t = cb.CreateRecordClass();
FileHelperEngine engine = new FileHelperEngine(t);
Теперь вы можете использовать тот же тип, созданный FileHelpers, для заполнения ваших значений следующим образом:
object customClass = Activator.CreateInstance(t);
System.Reflection.FieldInfo field = customClass.GetType().GetField("StringField", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance);
if (field != null)
{
field.SetValue(customClass, "StringValue");
}
А затем записать его в файл или строку:
string line = engine.WriteString(new object[] { customClass });