Использование библиотеки FileHelpers для некоторых замечательных вещей в VB.NET.Разбор файлов с динамическими классами, созданными из шаблонов текстовых файлов.Одна вещь, которую я не могу найти: способ прочитать одну запись и определить, что это должно привести к генерации двух записей.
Текущий код:
Dim FromType As Type = Dynamic.ClassBuilder.ClassFromSourceFile (MyFilePath, MyDynamicTypeName, NetLanguage.VbNet)
Dim FromRecords () как объект FromRecords = FileHelpers.CommonEngine.ReadString (FromType, MyStringBuilder.ToString) * здесь 100 * * код может быть 1006 *проверить определенные значения
Dim engine As New FileTransformEngine (Of ITransformable (Of MyDestinationClass), MyDestinationClass)
'В идеале в следующей строке я хотел бы, чтобы он увидел определенные условия и мог генерироватьдве записи из одной строки источника.Dim PayRecords () As Object = engine.TransformRecords (FromRecords)
В качестве альтернативы, если есть способ реализовать функцию «TransransTo () преобразования ITransformable (Of ...» и я могу вернуть несколько записей, я мог бы поставитьлогика в определении динамического класса TransformTo () метод.
Мысли?
Вот пример моего исходного динамического класса:
Импортирует FileHelpers 'Никогда не забуду
_ Открытый класс NotInheritable MyDynamicClass Реализует ITransformable (Of MyDestinationClass) _ Публичное имя в виде строки
<FieldQuoted(""""c, QuoteMode.OptionalForRead, MultilineMode.AllowForRead)> _
Public KeyType As String
Public Hours As Double
Открытая функция TransformTo () как MyDestinationClass Реализует ITransformable (Of MyDestinationClass) .TransformTo Dim res как новый MyDestination 1025*
res.ContactName = Name
' Here is where I would like to say... instead of Return res
If KeyType="ABCD" Then
Dim newRes as New MyDestinationClass
newRes.Contactname = Name + " 2nd contact"
Dim resArray() as MyDestinationClass
redim resArray(1)
resArray(0) = res
resArray(1) = newRes
End If
Return resArray
' Or alternately refer to the engine, but it is not in scope for the dynamic record (is it?). Something like...
engine.AppendToDestination(new MyDestinationClass(...))
Функция завершения Класс конца