mcl*_*sen 6 c# filehelpers attributes
我正在使用FileHelpers将模型导出为CSV.它有[FieldNotInFile()]属性,在导出时排除字段,但我需要使用属性,因为我需要一些其他属性以及另一个仅使用属性的第三方库.
有没有办法让FileHelpers忽略属性?
前几天我遇到了同样的问题,并使用了[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;
}
Run Code Online (Sandbox Code Playgroud)
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.
});
Run Code Online (Sandbox Code Playgroud)
FileHelpersOrder您的 CSV 规范在哪里,NiceOrder该类将是一个适当的 OOP 类,具有必要的属性、方法等。
如果要导出,则需要执行相反的操作,即FileHelpersOrder从 的集合中选择 的集合NiceOrder。