Member zur Laufzeit erstellen

SternchenA

Grünschnabel
Hi,
ich hätte ein folgendes Problem. Ich habe eine Klasse, die zur Laufzeit um einige Member und Properties ergänzt werden soll. DIe Daten werden aus Excel eingelesen, einige Splaten sind Pflichtsplaten, aber der Benutzer soll die Möglichkeit erhalten auch seine spezifischen Angaben zu machen, die dann bei dem entsprechendem Objekt mitabgelegt werden sollen. D.h. ich weiß nicht, ob solche Zusatzangaben gemacht werden und wenn ja wie viele solcher zusätzlicher Member benötigt werden und von welchen Datentyp die Angaben sein werden.
Kann mir vielleicht jemand einen Tip geben, wie so was gehen könnte.
Danke
:)
 
Hi,

seltsames Problem... mit Reflection.Emit kannst du zur Laufzeit Code kompilieren, jedoch glaube ich nicht, dass das hier hilft.
Es ist anders ansonsten nicht möglich zur Laufzeit an ein und dieselbe Klasse weitere Member anzufügen.

Ansonsten mach es wie Nobert es vorgeschlagen hat, bastle ein Dictionary in deine Klasse und lege evtl. zusätzlich benötigte Informationen im Dictionary ab.

Sebastian
 
Dictionaries sind nicht so sinnvoll,
weil ich meinem Benutzer einen geregelten Zugriff auf die Daten über Properties gestalten muss.
Und da bin ich wieder bei meinem alten problem wie ich zur Laufzeit Properties einer Klasse hinzufügen kann.
Zu dem weiß am Anfang weder den Datentyp noch die Struktur der ggf hinzukommenden Werte.
In einigen Fällen muss der Klasse ein Dictionary oder eine List hinzugefügt werden in anderen nur einzelne Werte
 
Hallo,

also wenn du wirklich dynamisch properties hinzufügen willst würde ich das über ne Abstraktion machen:

Du hast eine Liste von IProperties.Das generische Interface-IProperty<TPropertyType> hat nen Namen (string), nen Property-Typ (TPropertyType) und den eigentlichen Property-Wert (von TPropertyType). Damit kannst du dann deine Properties dynamisch aufbauen wie du sie brauchst.

Gruß Tom
 
Hallo,

also wenn du wirklich dynamisch properties hinzufügen willst würde ich das über ne Abstraktion machen:

Du hast eine Liste von IProperties.Das generische Interface-IProperty<TPropertyType> hat nen Namen (string), nen Property-Typ (TPropertyType) und den eigentlichen Property-Wert (von TPropertyType). Damit kannst du dann deine Properties dynamisch aufbauen wie du sie brauchst.

Gruß Tom

Hi könntest du mir das vielleicht ein bischen genauer erklären?
 
Zurück