Ich frage mich, ob C# optionale Eigenschaften wie die folgendenC# optionale Eigenschaften in C# 3.0 (2009)
public class Person
{
public string Name { get; set;}
public optional string NickName { get; set;}
...many more properties...
}
unterstützt
so, dass wenn ich eine Person Objekt erstelle ich leicht die Gültigkeit der Eingangswerte in einem einfachen überprüfen Schleife
public bool IsInputOK(Person person)
{
foreach(var property in person.GetType().GetProperties())
{
if(property.IsOptional())
{
continue;
}
if(string.IsNullOrEmpty((string)property.GetValue(person,null)))
{
return false;
}
}
return true;
}
Ich habe auf Google gesucht, aber erwünschte Lösung nicht bekommen. Muss ich den Code für die Gültigkeitsprüfung für jede Property wirklich manuell übergeben?
Danke.
Ich denke, dass eine schreckliche Art und Weise ist Gegenstand Validierung durchgeführt werden. Es riecht ... –
Ich dachte, das wäre der beste Weg :(... Ich kann mit diesem Ansatz etwa 100 Zeilen repetitiven Code speichern. Auch wenn ich zustimme, dass die Leistung durch die Verwendung von Reflektion ein bisschen wehtut. –
Interessiert mich? auf den Geruch zu erarbeiten? –