我正在使用DelimitedFieldBuilder
并将我的字段标记为FieldOptional = true
。
我后来创建了我的类构建器:
classBuilder = ClassBuilder.LoadFromXmlString(ColumnMappings);
我创建了我的引擎:
engine = new FileHelperEngine((classBuilder as DelimitedClassBuilder).CreateRecordClass());
然后我像这样填充数据集:
var myString = "01,122242843,456183,160823,0716,84,80,1\n02,456183,122242843,1,160822,,USD,1/\n03,008066662,USD,010,0,,,015\n88,125,,450,1134403,,,570/";
using(var dt = engine.ReadStringAsDT(myString))
{
using (var ds = new DataSet())
{
ds.Tables.Add(dt);
var myXml = ds.GetXml());
}
}
这看起来非常简单。但是,缺少值的字段仍然由ds.GetXml()
调用输出,如下所示:
<NewDataSet>
<Table1>
<ID>01</ID>
<Credit>122242843/</Credit>
<Field3>456183</Field3>
<Field4>160823</Field4>
<Field5>0716</Field5>
<Field6>84</Field6>
<Field7>80</Field7>
<Field8>1</Field8>
<Field9 />
</Table1>
</NewDataSet>
注意Field9
。它使用FieldOptional = true
进行标记。我的印象是,通过将其标记为可选,如果没有值,则不会在最终的XML中输出Field元素。是不是这样,或者我错过了另一个属性设置?
任何帮助都将不胜感激。
亲切的问候每个人!