Ich möchte einen Objektbaum dynamisch analysieren, um eine benutzerdefinierte Validierung durchzuführen. Die Validierung ist als solche nicht wichtig, aber ich möchte die PropertyInfo-Klasse besser verstehen.
Ich werde so etwas tun,
public bool ValidateData(object data)
{
foreach (PropertyInfo propertyInfo in data.GetType().GetProperties())
{
if (the property is a string)
{
string value = propertyInfo.GetValue(data, null);
if value is not OK
{
return false;
}
}
}
return true;
}
Wirklich der einzige Teil, der mich im Moment interessiert, ist "wenn die Eigenschaft eine Zeichenfolge ist". Wie kann ich aus einem PropertyInfo-Objekt herausfinden, um welchen Typ es sich handelt?
Ich werde mich mit grundlegenden Dingen wie Strings, Ints, Doubles beschäftigen müssen. Aber ich muss mich auch mit Objekten befassen, und wenn ja, muss ich den Objektbaum weiter unten in diesen Objekten durchlaufen, um die darin enthaltenen Basisdaten zu validieren. Sie haben auch Zeichenfolgen usw.
Vielen Dank.
quelle
string
undString
sind gleich.string
ist ein Alias fürString
.string
ein Alias für istSystem.String
. Dies kann einen Unterschied machen, da Sie zur VerwendungString
dieusing System;
Zeile hinzufügen müssen . Meine 2 Cent;)Ich bin gerade auf diesen tollen Beitrag gestoßen. Wenn Sie nur prüfen, ob die Daten vom Typ String sind, können wir möglicherweise die Schleife überspringen und diese Struktur verwenden (meiner bescheidenen Meinung nach).
quelle