Ayant une classe définie:Créer un objet .NET avec DataContract d'un dictionnaire
[DataContract]
public class Command
{
[DataMember(Name = "cmdName")]
public string CommandName { get; set; }
[DataMember(Name = "cmdTransactionId")]
public string CommandTransactionId { get; set; }
}
Je voudrais créer une instance de cette classe d'un dictionnaire:
Dictionary<string, object> propertyBag = new Dictionary<string, object>();
propertyBag["cmdName"] = "cmd1";
propertyBag["cmdTransactionId"] = "1";
Command command = deserializer.Create<Command>(propertyBag);
DataContractSerializer
ne fonctionne pas pour moi non plus le JavaScriptSerializer.ConvertToType
car chacun d'eux manque un morceau qui m'empêche de créer des objets en une fois.
Pourriez-vous utiliser 'var command = new Commande {CommandName =" cmd1 ", CommandTransactionId =" 1 "};'? –
Ceci est considérablement simplifié (juste un exemple) J'ai 30 classes DataContract et 300 propriétés comme celle-ci. Au lieu de DataMember, je pourrais utiliser JsonProperty par exemple. – algorytmus
Ce que je vais probablement essayer d'abord est de prendre votre dictionnaire de propriétés. Convertir ces "objets" en une chaîne JSON. Puis convertissez cette chaîne JSON à la classe d'objet réelle. Avec ce modèle, vous recréez essentiellement le comportement client-serveur de JSON sur une API ou à partir de données de formulaire. – krillgar