2016-03-31 3 views
1

je suis en train d'envoyer des données à la méthode WCF, via ajax du côté clientsérialisation objet dynamique

public class DynamicParse 
{  

    // other properties 

    public dynamic Value {get;set;} 
} 

// wcf method 
public void PostData(List<DynamicParse> list) 
{ 
    // parse list[0].Value 
} 

le tableau javascript qui est envoyé à la méthode WCF:

var data = [{ Value : 1 }, { Value : "test" }, { Value : { message : "hello" } }]; 

ma difficulté est comment puis-je analyser les données lorsque la propriété "Value" est un type d'objet-> {message: "hello"} de C#,

J'ai essayé la réflexion et la sérialisation json et aucun succès jusqu'à présent ..

Y at-il une autre option pour analyser les données spécifiées sans type dynamique? ou est-ce approprié ici pour ce problème?

grâce

+0

Avez-vous essayé de taper 'Value' comme' object'? –

Répondre

0

abord et avant tout, il n'y a pas de type de données spécifique dans JSON. Vous devez le faire correspondre avec un modèle.

Puisque vous semblez vouloir tout dynamique, vous pouvez simplement vérifier le type de données de la propriété dynamique nommée Value. Le type de données de la propriété Value sera déterminé par le framework .NET. Il vous suffit donc de vérifier de quoi il s'agit.

EDIT:

Vous pouvez également modifier la propriété de DynamicParse dynamique de la valeur à l'objet, l'inconvénient est que vous devrez lancer manuellement.

public class DynamicParse 
{  

    // other properties 

    public object Value {get;set;} 
} 

Vous devrez vérifier la valeur comme celui-ci ..

if(entry.Value is MyCustomClass) 
{ 
    MyCustomClass someObject = (MyCustomClass)entry.Value; 
} 

Pour dynamique, pas besoin de jeter simplement affecter la valeur mais pour objet que vous devez jeter.