簡體   English   中英

如何使用FileHelpers創建用於編寫csv文件的記錄

[英]how to create records for writing a csv file with FileHelpers

我正在使用Filehelpers從文件導入我的數據庫。 我現在正在處理反向過程,並且無法看到如何從我的數據對象創建記錄。

我可以找到的所有示例都顯示從文件 - >表 - >文件我使用帶有泛型的接口進行轉換。 我在入站轉換中使用這個:

 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類

使用此屬性,您可以在RecordClass中標記一個方法,該方法負責將其轉換為指定的方法。

有沒有人有一個使用此屬性的示例或如何創建記錄集以使我朝着正確方向的示例?

(粗略)代碼使用了一些細節:

 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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM