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.