Как я могу использовать FluentFile в Rhino ETL DSL? - PullRequest
1 голос
/ 15 июля 2009

Я играл с библиотекой 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 Ответ

1 голос
/ 15 июля 2009

Атрибут DelimitedRecordAttribute находится в сборке FileHelpers , пространство имен FileHelpers.

...