336 Stimmen

Convert.ChangeType() schlägt bei nullbaren Typen fehl

Ich möchte eine Zeichenfolge in einen Objekt-Eigenschaftswert konvertieren, dessen Name ich als Zeichenfolge habe. Ich versuche, dies wie folgt zu tun:

string modelProperty = "Some Property Name";
string value = "SomeValue";
var property = entity.GetType().GetProperty(modelProperty);
if (property != null) {
    property.SetValue(entity, 
        Convert.ChangeType(value, property.PropertyType), null);
}

Das Problem ist, dass dies fehlschlägt und eine Invalid Cast Exception auslöst, wenn der Eigenschaftstyp ein nullable Typ ist. Dies ist nicht der Fall der Werte, die nicht konvertiert werden können - sie funktionieren, wenn ich dies manuell tun (z. B.. DateTime? d = Convert.ToDateTime(value); ) Ich habe einige ähnliche Fragen gesehen, aber ich kann es immer noch nicht zum Laufen bringen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X