Я не рекомендую использовать класс FileHelpers для чего-либо, кроме указания формата файла CSV.Класс представляет одну запись в этом файле.Считайте синтаксис вашего MigrationFlags
класса умным способом описания записи, которую FileHelpers может читать и записывать автоматически.
Если вам нужно добавить любую дополнительную логику, он долженбыть в отдельном классе, который вы отображаете в / из по мере необходимости.Это разделяет проблемы - MigrationFlags
определяет запись CSV.
[DelimitedRecord(";")]
public class MigrationFlags
{
// Extremely simple class.
// Only the fields in the CSV
// No logic. Nothing clever.
public string RelativeUrl { get; set;};
}
public class MigrationClass
{
// A normal C# class with:
// constructors
// properties
// methods
// readonly, if you like
// inheritance, overrides, if you like
// etc.
public string Url { get; set; }
public string RelativeUrl => UriExt.GetRelativeUrl(this.Url);
}
Затем на экспорт, что-то вроде:
public void Export(IEnumerable<MigrationClass> items, string filename)
{
var migrationFlags = items.Select(
x => new MigrationFlags()
{
RelativeUrl = x.RelativeUrl,
// etc.
});
var engine = new FileHelperEngine<MigrationFlags>();
engine.WriteFile(filename, migrationFlags);
}
См. этот ответ для получения дополнительной информации.