Я играл с библиотекой Rhino ETL, и мне действительно нравится направление, в котором он движется. Однако я обнаружил, что плохая часть в этом заключается в том, что документация скудна, и, похоже, недостаточно хорошей информации о том, как создавать эти конвейерные процессы, особенно с использованием DSL.
Я просто пытаюсь создать файл DSL, чтобы загрузить файл и экспортировать данные в другой файл, чтобы увидеть, как все это может совмещаться. То, что у меня есть, так это.
[DelimitedRecord("\t")]
class User:
public Name as string
public Phone as string
public Email as string
operation import_file:
file = Rhino.Etl.Core.Files.FluentFile(typeof(User)).From("""E:\Fake\Book1.txt""")
for row in file:
yield Row.FromObject(row)
operation export_file:
file = Rhino.Etl.Core.Files.FluentFile(typeof(User)).To("""E:\Fake\Test.txt""")
for row in rows:
record = User(Name: row["Name"])
file.Write(record)
process ImportFile:
import_file()
export_file()
Выдает это исключение
File.boo (1,2): BCE0064: Boo.Lang.Compiler.CompilerError: Не найдено ни одного атрибута с именем DelimitedRecord или DelimitedRecordAttribute (имена атрибутов не чувствительны к регистру). Вы имели в виду 'System.Diagnostics.DelimitedListTraceListener'?
Если я удаляю часть атрибута, я получаю эту ошибку
Исключение: не удалось создать конвейер. ImportFile: класс User должен быть помечен атрибутом [DelimitedRecord] или [FixedLengthRecord].
Исключение: не удалось выполнить операцию File.import_file: класс User должен быть помечен атрибутом [DelimitedRecord] или [FixedLengthRecord].
Есть идеи здесь? Или есть примеры использования FluentFile в DSL для Rhino ETL?