Objekt abhängig von gelesenen string erzeugen

Ozzy Ozborn

Erfahrenes Mitglied
Moin,

ich baue mir gerade für ein kleines Projekt einen Log-Analyzer. Dabei lese ich eine Datei ein und möchte die Daten hieraus weiter verarbeiten. Für verschiedene Einträge habe ich mir dazu Objekte "angelegt", die die Daten entsprechend aufbereiten. Mein "Problem" ist nun, dass ich dies etwas eleganter gestalten möchte als:
if (items[2].Contains("I001") LogList.Add(new CODE_I001(items[0], items[1], items[9].Split(' ')));
if (items[2].Contains("I002") LogList.Add(new CODE_I002(items[0], items[1], items[9].Split(' ')));
[...]
Ich suche also nach einer Möglichkeit, quasi ein Dictionary anzulegen, mit dem Vergleichsstring und dem Objekt. welches ich erzeugen möchte. Bisher bin ich nicht wirklich fündig geworden, was man da schlaues machen kann... Habt Ihr da einen Tipp für mich?
 
Hi

alle diese Klassen haben vermutlich gleiche Methoden, so dass man die in einem Interface zusammen fassen kann? (sonst wirds kompliziert).

Jedenfalls, das Stichwort ist "Reflection". Einfaches Beispiel für den Fall hier:
C#:
Type typ = Type.GetType("MeinKlassenName");
MeinInterface instanz = (MeinInterface)Activator.CreateInstance(typ);
 
Moin,
vielleicht verstehe ich Dich nicht ganz richtig... Abhängig von dem gelesenen string (z.B. I001) möchte ich ein Objekt (z.B. CODE_I001) erzeugen. die einzelnen Informationscodes erben von einem generellen Code:
public class CODE_I001 : Infocode
{...}

MfG, Ozzy
 
Ja, so hab ich das verstanden

Aus dem String I001 baust du dir zuerst den String CODE_I001 (trivial), dieser String ist dann MeinKlassenName oben.
Infocode ist MeinInterface.
 
Zurück