Class Map
Override CreateClassMap() on the derived request type to supply a CsvHelper ClassMap instead of relying on attributes:
Import
Section titled “Import”public sealed class ImportUsersRequest : CsvRequest<UserImportRow>{ public static ValueTask<ImportUsersRequest> BindAsync(HttpContext context) => BindCsvAsync<ImportUsersRequest>(context);
protected override ClassMap CreateClassMap() => new UserImportRowMap();}
public sealed class UserImportRowMap : ClassMap<UserImportRow>{ public UserImportRowMap() { Map(r => r.Name).Name("full_name"); Map(r => r.Email).Name("email_address"); }}Export
Section titled “Export”The same CreateClassMap() override is available on CsvResponse<TRow> via the classMap parameter of CsvResponse.From:
CsvResponse.From(rows, classMap: new UserExportRowMap(), fileName: "users.csv")For the full CSV import example, see CSV Import. For export, see CSV Export.