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);
4

1 に答える 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);

どちらも機能するはずです。

于 2013-10-15T12:11:48.243 に答える