2009-07-14 7 views
1

Ich habe mit der Rhino ETL-Bibliothek gespielt und mag die Richtung, in die es geht. Allerdings habe ich festgestellt, dass das Schlimme daran ist, dass die Dokumentation spärlich ist und es scheint nicht genug gute Informationen darüber zu geben, wie diese Pipeline-Prozesse erstellt werden und vor allem die DSL-Nutzung.Wie kann ich FluentFile in Rhino ETL DSL verwenden?

Ich versuche gerade, eine DSL-Datei zu erstellen, um eine Datei zu laden und die Daten in eine andere Datei zu exportieren, um zu sehen, wie das alles zusammenpassen könnte. Was ich bisher habe ist das.

[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() 

Es wirft diese Ausnahme

File.boo (1,2): BCE0064: Boo.Lang.Compiler.CompilerError: Kein Attribut mit dem Namen 'DelimitedRecord' oder 'DelimitedRecordAttribute' gefunden wurde (Attribut Namen sind case insensitive). Meintest Du 'System.Diagnostics.DelimitedListTraceListener'?

Wenn ich entfernen Sie das Attribut Teil ich diesen Fehler erhalten

Ausnahme: Fehler Pipeline Importfile zu erstellen: Die Klasse Benutzer muss mit dem [DelimitedRecord] oder [FixedLengthRecord] Attribut gekennzeichnet werden. Ausnahme: Fehler beim Ausführen der Operation File.import_file: Die Klasse User muss mit dem Attribut [DelimitedRecord] oder [FixedLengthRecord] markiert sein.

Irgendwelche Ideen hier? Oder gibt es Beispiele, wie man die FluentFile innerhalb einer DSL für Rhino ETL verwendet?

Antwort

1

Die DelimitedRecordAttribute ist in der FileHelpers Assembly, FileHelpers-Namespace.

+0

Das ist wahr. Ich habe sichergestellt, dass die FileHelpers-Assembly in meinem Projekt und sogar in dem gleichen Ordner wie meine ausführbare Datei referenziert wird. Ich habe auch versucht, einen "Import FileHelpers" an den Anfang meiner DSL-Datei hinzuzufügen. Es wird die gleichen Ausnahmen werfen. –

+0

Nun, der Fehler sagt, dass es die Attributklasse nicht finden kann ... also muss es eine fehlende Referenz sein ... versuch SharpDevelop zu benutzen, um deinen boo-Code zu schreiben. Sehen Sie sich auch dieses Beispiel an: http://www.mail-archive.com/[email protected]/msg00343.html –

+0

+1 für die Bereitstellung eines Beispiels. Das ist nicht leicht zu finden. –