Como posso usar FluentFile em Rhino ETL DSL?
Pergunta
Eu tenho jogado ao redor com a biblioteca ETL Rhino e realmente gosto da direção que ele está indo. No entanto, eu descobri que a parte ruim sobre ele é a documentação é escassa e há não parece ser uma informação boa o suficiente sobre como criar esses processos de dutos e, especialmente, usando o DSL.
Eu apenas estou tentando criar um arquivo de DSL para carregar um arquivo e exportar os dados em outro arquivo para ver como tudo isso poderia se encaixar. O que eu tenho até agora é este.
[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()
Ela lança esta exceção
File.boo (1,2): BCE0064: Boo.Lang.Compiler.CompilerError: Nenhum atributo com o nome 'DelimitedRecord' ou 'DelimitedRecordAttribute' foi encontrado (nomes de atributos são maiúsculas e minúsculas). Você quis dizer 'System.Diagnostics.DelimitedListTraceListener'?
Se eu remover a parte atributo eu recebo este erro
Excepção: Falha ao criar ImportFile gasoduto: O usuário classe deve ser marcada com o ou atributo [DelimitedRecord] [FixedLengthRecord]. Exceção: Falha ao executar a operação File.import_file:. O usuário classe deve ser marcada com o [DelimitedRecord] ou [FixedLengthRecord] Atributo
Todas as ideias aqui? Ou existem quaisquer exemplos de como usar o FluentFile dentro de uma DSL para Rhino ETL?
Solução
O DelimitedRecordAttribute está no FileHelpers montagem, FileHelpers namespace.