Определить новое свойство только для чтения в своем классе, как это:
[DelimitedRecord(",")]
public class SampleType
{
public string Field1;
public int Field2;
public IEnumerable<ChildClass> Collection { get; set; }
public string CollectionValues
{
get
{
string.Join("|", this.Collection.Select(c => c.Value));
}
}
}
Я никогда не использовал FileHelper, но я предполагаю, что вы должны быть в состоянии экспортировать файл CSV, содержащий Field1, Field2 и CollectionValues.
UPDATE:
Глядя на FileHelpers' документации, похоже FileHelpers' решение этой ситуации с помощью пользовательского FieldConverter. Вы можете определить пользовательский преобразователь, как это:
public class MyCustomConverter : ConverterBase
{
public override object StringToField(string from)
{
return from.Split('|').Select(s => new ChildClass { Value = s });
}
public override string FieldToString(object fieldValue)
{
IEnumerable<ChildClass> collection = (IEnumerable<ChildClass>)fieldValue;
return string.Join("|", collection.Select(c => c.Value));
}
}
Затем, вы можете использовать его в своем классе, как это:
[DelimitedRecord(",")]
public class SampleType
{
public string Field1;
public int Field2;
[FieldConverter(typeof(MyCustomConverter))]
public IEnumerable<ChildClass> Collection { get; set; }
}
Вы должны решить и объяснить, как вы хотите, чтобы ребенок класса должны быть представлены в файл CSV. Вы хотите, чтобы ваш файл CSV был как «Field1, Field2, Child1, Child2, ...»? – ataravati
См. Обновление. –