2016-03-31 10 views
1

Ich versuche, Daten zu wcf Methode zu senden, über Ajax von Client-SeiteSerialisierung dynamisches Objekt

public class DynamicParse 
{  

    // other properties 

    public dynamic Value {get;set;} 
} 

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

der Javascript-Array, das an die WCF-Methode gesendet wird:

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

meine Schwierigkeit ist, Wie kann ich die Daten analysieren, wenn die "Value" -Eigenschaft ein Objekttyp ist -> {Nachricht: "Hallo"} von C#,

Ich versuchte Reflexion und JS Serialisierung und bisher keinen Erfolg ..

Gibt es eine weitere Option, um die angegebenen Daten ohne dynamischen Typ zu analysieren? oder ist es hier für dieses Problem geeignet?

dank

+0

Haben Sie versucht, "Value" als "Objekt" einzugeben? –

Antwort

0

In erster Linie gibt es keine typspezifischen Daten in JSON. Sie müssen es mit einem Modell vergleichen.

Da Sie scheinbar alles dynamisch haben wollen, können Sie einfach den Datentyp der dynamischen Eigenschaft namens Value überprüfen.

Der Datentyp der Eigenschaft Value wird vom .NET-Framework bestimmt, so dass Sie nur überprüfen müssen, was es ist.

EDIT:

Sie können auch die Eigenschaft DynamicParse Wert von dynamisch ändern zu widersprechen, ist der Nachteil Sie es manuell geworfen haben wird.

public class DynamicParse 
{  

    // other properties 

    public object Value {get;set;} 
} 

So werden Sie den Wert wie folgt überprüfen ..

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

Für dynamische, keine Notwendigkeit zu werfen einfach den Wert zuweisen, sondern für das Objekt haben Sie es zu werfen.

Verwandte Themen