2013-10-15 3 views
1

Как это сделать динамически с помощью DelimitedClassBuilder, чтобы столбцы в файле могли расширяться, но не прерывать мою программу?Добавление поля массива с помощью FileHelpers 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); 
+0

Вы получили окончательное решение? – Kiquenet

ответ

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

оба из которых должны работать.

+0

Спасибо. Я пробовал вторую часть, но получал ошибку времени выполнения. Но первая часть - это то, что я искал. Работает отлично. – user2846043

Смежные вопросы