Как я могу использовать FluentFile в Rhino ETL DSL?
Я играл с библиотекой 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?
1 ответ
DelimitedRecordAttribute находится в сборке FileHelpers, пространстве имен FileHelpers.