Gewusst wie: Konvertieren einer Zeichenfolge in einen Nullable-Typ, Die erst zur Laufzeit Bestimmt wird?

Ich habe den code unten und ich brauche, um zu konvertieren eine Zeichenfolge in einer Art, die ist auch angegeben String:

 Type t = Type.GetType("System.Nullable`1[[System.DateTime, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]");

            object d = Convert.ChangeType("2012-02-23 10:00:00", t);

Ich bekomme die folgende Fehlermeldung:

Invalid cast from 'System.String' to 'System.Nullable`1[[System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]'.

Wie wäre das schön möglich?

Ich weiß, eine hässliche Möglichkeit wäre zu prüfen, ob der Typ nullable verwenden, wenn:

    Type possiblyNullableType = Type.GetType("System.Nullable`1[[System.DateTime, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]");

    var underlyingType = Nullable.GetUnderlyingType(possiblyNullableType);

    Object result;

    //if it's null, it means it wasn't nullable
    if (underlyingType != null)
    {
        result = Convert.ChangeType("2012-02-23 10:00:00", underlyingType);
    }

Wäre es eine bessere Möglichkeit?

Dank,

InformationsquelleAutor der Frage The Light | 2012-02-24

Schreibe einen Kommentar