使用FileHelpers DelimitedClassBuilder添加数组字段

问题描述 投票:1回答:1

如何使用DelimitedClassBuilder动态执行此操作,以便文件中的列可以扩展但不会破坏我的程序?

[DelimitedRecord(",")]
public class MyRecord
{
    public string Name;

    [FieldOptional, FieldArrayLength(0, 100)]
    public string[] I_DONT_CARE_WHAT_COMES_AFTER_THIS;
}

即如何完成此操作:

var cb = new DelimitedClassBuilder("xyz", ",");
cb.AddField("Name", "string");
... how do I add the array field here?
Type type = cb.CreateRecordClass();
var engine = new DelimitedFileEngine(type);
c# filehelpers
1个回答
1
投票

好问题。我能找到的最好的是:

var cb = new DelimitedClassBuilder("xyz", ",");
cb.AddField("Name", "string");
cb.AddFields(100);
foreach (var field in cb.Fields.Where(f => f.FieldName.StartsWith("Field")))
{
    field.FieldOptional = true;             
}
var type = cb.CreateRecordClass();
var engine = new DelimitedFileEngine(type);

我无法让它与之合作

cb.AddField("I_DONT_CARE", typeof(string[]));

也不是

cb.AddField("I_DONT_CARE", typeof(string[]).FullName);

两者都应该有效。

© www.soinside.com 2019 - 2024. All rights reserved.