Convertit une chaîne de type objet

Le code que j'ai à mettre en œuvre prend une liste de données à partir d'un appel Ajax sur une page web.

Je sais que l'objet j'ai besoin de mettre à jour, mais chaque champ/valeur de la paire est à venir à travers une chaîne de valeurs et non pas comme leur propre type.

Donc je suis en train de travailler sur le type de la propriété, un moulage de la valeur que le nouveau type et le champ à l'aide de la réflexion.

Cependant j'obtiens l'erreur suivante pour autre chose que des chaînes de caractères.

Invalid cast from 'System.String' to 'System.TimeSpan'.

Le code je suis tenter de faire la conversion en est;

    public void Update<T>(string fieldName, string fieldValue)
    {
        System.Reflection.PropertyInfo propertyInfo = typeof(T).GetProperty(fieldName);
        Type propertyType = propertyInfo.PropertyType;

        var a = Convert.ChangeType(fieldValue, propertyType);
    }

Est donc l'objet cible.

  • Votre erreur est de dire il n'y a pas natif de conversion à partir de la chaîne de plage de temps, cette méthode n'est pas capable de le faire. Je voudrais vous recommandons de vous renseigner sur la plage de temps docs et essayer de trouver un moyen astucieux de faire la conversion.
  • Par curiosité, pourquoi ne pas l'utiliser ASP.NET MVC-modèle de liaison? (Ou n'est-ce pas un projet MVC?)
  • Ce n'est pas seulement de Temps. C'est tout. Je ne peux pas convertir string en int, plage de temps, etc.
  • c'est une application MVC ouais, mais je suis passé d'un objet json de fieldname, la valeur de l'id. j'ai besoin de trouver l'objet, puis définir la propriété de ce domaine. l'interface utilisateur est un tas de li éléments et le texte de chacun est ce qui est passé pour moi.
  • Comme vous êtes de mentionner que vous recevez Json valeurs, dans ce cas peut-on utiliser JObject.Parse(jsonValue).ToObject<FooBarType>() ici. Avis sur cela ?
InformationsquelleAutor griegs | 2013-06-06