Chcę dynamicznie analizować drzewo obiektów, aby przeprowadzić niestandardową weryfikację. Walidacja nie jest ważna jako taka, ale chcę lepiej zrozumieć klasę PropertyInfo.
Będę robić coś takiego,
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;
}
Naprawdę jedyną rzeczą, na której mi zależy w tej chwili, jest „jeśli właściwość jest łańcuchem”. Jak mogę dowiedzieć się z obiektu PropertyInfo, jaki to jest typ.
Będę musiał poradzić sobie z podstawowymi rzeczami, takimi jak stringi, ints, double. Ale będę musiał również zajmować się obiektami, a jeśli tak, będę musiał przejść drzewo obiektów dalej w tych obiektach, aby zweryfikować podstawowe dane w nich zawarte, będą one również miały łańcuchy itp.
Dzięki.
c#
.net
reflection
Piotr
źródło
źródło
string
iString
są równe.string
jest aliasem dlaString
.string
jest to alias dlaSystem.String
. Może to mieć znaczenie, ponieważ aby użyćString
, musisz dodaćusing System;
linię. Moje 2 centy;)Właśnie natknąłem się na ten wspaniały post. Jeśli tylko sprawdzasz, czy dane są typu string, to może możemy pominąć pętlę i użyć tej struktury (moim skromnym zdaniem)
źródło