1

我一直在玩 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:必须使用 [DelimitedRecord] 或 [FixedLengthRecord] 属性标记 User 类。例外:无法执行操作 File.import_file:必须使用 [DelimitedRecord] 或 [FixedLengthRecord] 属性标记 User 类。

这里有什么想法吗?或者是否有任何关于如何在 DSL 中为 Rhino ETL 使用 FluentFile 的示例?

4

1 回答 1

1

DelimitedRecordAttribute位于FileHelpers程序集 FileHelpers 命名空间中。

于 2009-07-15T02:41:22.417 回答