gpt4 book ai didi

c# - 如何使用 FileHelpers 创建用于写入 csv 文件的记录

转载 作者:行者123 更新时间:2023-11-30 18:44:53 25 4
gpt4 key购买 nike

我正在使用 Filehelpers 从文件导入我的数据库。我现在正在处理相反的过程,但在了解如何从我的数据对象创建记录时遇到了问题。

我能找到的所有示例都显示从文件 -> 表格 -> 文件我正在使用带有泛型的接口(interface)进行转换。我在入站转换中使用了这个:

 public interface IConvertCSVRecordToType<T> where T : SimpleBase
{
T ConvertCSVRecordToType();
}

并且想对出站使用这样的东西:

 public interface IConvertTypeToCSVRecord<T> where T : SimpleBase, new()
{
void ConvertTypeToCSVRecord(T type);
}

我使用此类来表示 CSV 记录:

  [DelimitedRecord(";"), IgnoreEmptyLines]
public class CSVRecordFormat : IConvertCSVRecordToType<Material>,
IConvertTypeToCSVRecord<Material>

我在 Filehelpers 文档中遇到了 TransformToRecordAttribute

TransformToRecordAttribute Class

With this attribute you can mark a method in the RecordClass that is the responsable of convert it to the specified.

有没有人有使用此属性的示例或如何创建记录集以使我朝着正确的方向前进的示例?

最佳答案

(粗略)省略了一些细节的代码:

 public class CSVTableExportProvider<TTable, TRecord>
where TTable : SimpleBase, new()
where TRecord : IConvertTypeToCSVRecord<TTable>, new()
{
public void ExportTable(string path, string filename, bool continueOnError)
{
var rows = _service.GetList<TTable>();
var records = new List<TRecord>();

var csvfile = Path.Combine(path, filename);

var csvFile = new CSVFile<TRecord>(csvfile, continueOnError);

foreach (var row in rows)
{
var rec = new TRecord();
rec.ConvertTypeToCSVRecord(row);
records.Add(rec);
}
csvFile.ConvertRecordsToFile(records.ToArray());
}
}

我从我的单元测试中调用:

 var provider = new CSVTableExportProvider<Material, MaterialCSVRecordFormat>();
provider.ExportTable(foldername, filename, true);

关于c# - 如何使用 FileHelpers 创建用于写入 csv 文件的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2022157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com