Forums Neueste Beiträge
 

Propertie über einen String erreichen

04/06/2008 - 14:28 von Stephan | Report spam
Hallo zusammen,

hat jemand eine Idee oder einen Link für die Lösung des folgenden Problems:

Ich habe eine Klasse mit einem Propertie
"Beschreibung"
und einem
zweiten Propertie
"Kurzbeschreibung".

Jetzt habe ich einem Text z.B. in einem string text = "blablabla".

Ich weiß aber leider erst zur Laufzeit in wechles Propertie der text
"blablabla" gefüllt werden. Diese Information steht im

string target = "Beschreibung"
oder
string target = "Kurzbeschreibung"

also class.Beschreibung = text
order
also class.Kurzbeschreibung= text


wie kannich jetzt die Zuweisung machen OHNE eine if oder switch Abfrage
auf das target machen zu müssen. Ich will wirklich dynamisch das Propertie
beschreiben können. Es kann ja sein dass spàter noch ein weiteres Propertie
hinzukommt.

class.[ ??? target ???] = text ?????

Dankeund Grüße
Stephan
 

Lesen sie die antworten

#1 Michael Huber
04/06/2008 - 14:56 | Warnen spam
Mal abgesehen davon, dass du das Ganze generell anders umsetzten
solltest, funktioniert sowas über Reflection.


Umsetzung in etwa so (ist hier auf bestmögliche Lesbarkeit
getrimmt ;))

public static void SetValue(string propertyName, Type type,
object instance, object newValue)
{
PropertyInfo info = null;
foreach (PropertyInfo var in
type.GetProperties(BindingFlags.Public | BindingFlags.Instance))
{
if (var.Name == propertyName)
{
info = var;
break;
}
}
if (info != null)
info.SetValue(instance, newValue, null);
}

Ähnliche fragen