Hintergrund:Objekt zur Liste C# und SSIS
Bit eines seltsam. Mit SSIS, um mit Daten aus einer API kommt, wird mein erstes Skript die Daten und legt sie gegen eine stark typisierte Modell namens „TestModel“
Das SSIS-Paket speichert dann die resultierende Information an eine Variable, die dann übergeben wird in den nächsten Teil des SSIS-Pakets. SSIS-Namensräume werden nicht herumgetragen, so dass jede Skriptaufgabe isoliert ist.
Script Task Ein Namensraum: ST_a048e0de86e1432d8da6f60b5d7055db
Script Task Zwei Namensraum: SC_0573a66ec6c0486a98ee00cea4365654
Das Problem:
Der zweite SSIS Skript-Task die Variable nimmt und liest Es ist in Ordnung, ich kann alle meine Zeilen und alle relevanten Daten debuggen. Jetzt beginnen die Dinge immer seltsam, die Art der Liste, wenn es erreicht mein zweites Skript
object {System.Collections.Generic.List<ST_a048e0de86e1432d8da6f60b5d7055db.TestModel>}
Jedes der Objekte in diesen Generic.List
hat die Art von:
ST_a048e0de86e1432d8da6f60b5d7055db.TestModel
Was kann ich mit dieser Liste zu tun ? Ziemlich viel nichts ... Ich habe die TestModel.cs von Skript-Namespace eins in Namespace zwei dupliziert, in der Hoffnung, dass es nur auf gut passen würde, wenn ich eine neue Liste erstellt und das Objekt auch übergeben, ach nein.
Was ich versucht habe, so weit:
IEnumerable e = data as List<TestModel>; //Returns 0 rows
IEnumerable list = (IEnumerable)data; // returns all rows, type System.Collections.IEnumerable {System.Collections.Generic.List<ST_a048e0de86e1432d8da6f60b5d7055db.TestModel>}
List<TestModel> listtest = ((TestModel[])data).ToList() // Runtime error
List<TestModel> listtest2 = list.Cast<TestModel>().ToList(); //Runtime error - Unable to cast type 'ST_a048e0de86e1432d8da6f60b5d7055db.TestModel' to type 'SC_0573a66ec6c0486a98ee00cea4365654.TestModel'
Mein Endziel ist, dass ich etwas brauche ich kann durch die Schleife und manipulieren in ein Objekt SSIS verdauen kann. Dieser Teil ist einfach, aber es ist sehr schwierig, ihn in die Schleife zu bekommen!
Extra Hinweis: SSIS-Pakete sind wirklich nervig mit Abhängigkeiten so wirklich zu vermeiden, etwas Besonderes zu verwenden. Auch die Namensräume sind zu 100% voneinander isoliert, eine Kommunikation zwischen beiden ist nicht möglich.
geben, die irgendwie funktioniert, erstellt die Liste ohne einen Laufzeitfehler, obwohl es 0 Zeilen enthält, ähnlich der Befehlsliste Test1 = Daten als Liste . Danke für den Versuch, obwohl –
Caz1224
@ Caz1224 können Sie nicht einfach durch Ihre IEnumerable Schleife, um Ihr Ding zu tun? IEnumerable list = (IEnumerable) Daten; arbeitet für dich richtig. Sie können darauf hinweisen. –
Die Foreach funktioniert in einem Sinne, dass ich die Liste durchlaufen kann, aber was in die Schleife übergeben wird, ist ein Objekt mit dem alten Typ, das gibt mir keine Möglichkeit, iteinloop.Index oder iteinloop [Index] als es zu sagen hat nichts darin, als auf das ganze Objekt zu zeichnen. – Caz1224