2010-01-07 6 views
3

Filehelpers를 사용하여 파일에서 데이터베이스를 가져옵니다. 현재 역 과정을 진행하고 있으며 내 데이터 개체에서 레코드를 만드는 방법을 보는 데 문제가 있습니다.FileHelpers로 CSV 파일을 작성하기위한 레코드를 만드는 방법

모든 예제는 파일 -> 테이블 -> 파일에서 찾을 수 있습니다. 변환 할 제네릭과 함께 인터페이스를 사용하고 있습니다. 나는 인바운드 변환에 대한이 하나를 사용

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를 발견했습니다.

사용자가 지정한 로 변환의 responsable을 인 RecordClass의 방법 를 표시 할 수 있습니다 이 속성으로 TransformToRecordAttribute 클래스

.

누구든지이 특성을 사용하는 예제 또는 올바른 방향으로 나를 보내도록 레코드 집합을 만드는 방법에 대한 예제가 있습니까? 생략 몇 가지 세부 사항과 협력

+0

나는 레코드가 생성 얻을 필요 - I 내가 그것을 닦을 때 정보를 여기에서 업데이트 할 것이다. – Maggie

답변

0

(거친) 코드 : 내 단위 테스트에서 호출

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); 
관련 문제