모델을 CSV로 내보내는 데 FileHelpers을 사용하고 있습니다. 그것은 내보낼 때 필드를 제외하는 [FieldNotInFile()] 특성을 가지고 있지만 속성으로 만 작동하는 다른 타사 라이브러리에서도 다른 특성을 필요로하므로 속성을 사용해야합니다.FileHelpers의 속성 무시
FileHelpers에서 속성을 무시하도록 할 수있는 방법이 있습니까?
모델을 CSV로 내보내는 데 FileHelpers을 사용하고 있습니다. 그것은 내보낼 때 필드를 제외하는 [FieldNotInFile()] 특성을 가지고 있지만 속성으로 만 작동하는 다른 타사 라이브러리에서도 다른 특성을 필요로하므로 속성을 사용해야합니다.FileHelpers의 속성 무시
FileHelpers에서 속성을 무시하도록 할 수있는 방법이 있습니까?
FileHelpers 클래스는 제한된 C# 구문을 정의 언어로 사용하여 플랫 파일의 사양을 정의하는 방법 일뿐입니다. 따라서 FileHelpers 클래스는 C# 클래스의 일반적인 유형이므로 다른 방식으로 사용해서는 안됩니다. FileHelpers 클래스는 CSV 형식의 '사양'으로 생각하십시오. 그것이 유일한 역할이되어야합니다. 당신이 (당신의 경우에, 대신 필드의 특성을 필요로)보다 '정상'개체의 레코드를 필요로한다면, 더 나은 이런 일에 결과를 매핑 :
FileHelperEngine engine = new FileHelperEngine<FileHelpersOrder>();
var records = engine.ReadFile("FileIn.txt");
var niceOrders = records.Select(
x => new NiceOrder()
{ Number = x.Number,
Customer = x.Customer
// etc.
});
을 FileHelpersOrder
당신의 CSV 사양과 인 경우 NiceOrder
클래스는 필요에 따라 속성, 메서드 등을 포함하는 적절한 OOP 클래스가됩니다. 당신이 수출하는 경우
는, 당신은 반대를 할 즉, NiceOrder
의 컬렉션 FileHelpersOrder
의 컬렉션을 선택해야합니다.
전날 같은 문제가 있었는데 [FieldHidden]
속성을 사용했습니다. 이런 식으로 뭔가 :
[DelimitedRecord(",")]
public class Record
{
public int Id;
public string Name;
public string SomeProperty
{
get { return someProperty; }
set { someProperty = value; }
}
[FieldHidden]
private string someProperty;
}
나는이 재산에게지지 필드를주고 [FieldHidden]
로 백업 필드를 표시하여 일을 가지고 필드 및 속성.
이 release3.27 때문에, 당신이 [FieldHidden] 사용할 수 있습니다
[DelimitedRecord("\t")]
public class PolicyFileRecord
{
public string FileDate;
public int ProgramId;
public string LocationAddress1;
public string LocationAddress2;
public string LocationAddress3;
public string LocationCity;
public string LocationState;
public string LocationZip;
[FieldHidden]
public string LocationCountry;
}