2010-12-15 8 views
0

Ich verwende WebKit Browser-Steuerelement in meiner .net-Anwendung. Ich bin auch neu in JSON und habe wenig Kenntnisse über Java Script. Meine ist es, eine Methode C# -Methode aus Java-Skriptcode aufzurufen. Ich weiß, dass es eine "ObjectForScripting" -Eigenschaft mit WebKit-Steuerelement gibt.Wie erhalte ich JSON formatierte Daten in C# -Methode Argument

C# -Code: - Dieser Code wird bei einem Klick auf die Schaltfläche ausgeführt. Welche injizieren Java-Skript in gerenderte HTML-Seite.

Element scriptElm = browser.Document.CreateElement("script"); 
scriptElm.AppendChild(browser.Document.CreateTextNode("Test(['ABC','EFG'],{'name':'First Name','surname':'LastName'})")); 

NodeList headElm = browser.Document.GetElementsByTagName("head"); 
headElm[0].AppendChild(scriptElm); 

Above Code ruft unter Java-Script-Methode von gerenderten HTML-Seite.

Java Script Code:

function Test(arg1,arg2) 
{ 
    document.write(arg2.name); // Printing correct i.e. Firstname 
    document.write(arg2); // Bad!!!! always print [Object object] 
    window.external.TestMethod(arg1,arg2); // Call method in C# code. 
} 

C# Methode Unterschrift

public bool TestMethod(string obj1, String obj2) 
{ 
      MessageBox.Show(obj1.ToString()); 
      MessageBox.Show(obj2.ToString()); 
      return true; 
} 

So in über Callback-Methode bin ich nicht in der Lage zweite Parameter zu erhalten i.e.obj2 richtig. In C#. Ich bekomme es immer als Objekt. Ich habe versucht, das auf Object, aber nicht funktioniert.Wie soll ich es in das richtige Format konvertieren?

Danke, Omky

Antwort

2

Der Versuch, Ihre Methode Signatur zu ändern:

public bool TestMethod(object obj1, object obj2) 

einen Haltepunkt auf sie setzen und haben einen Blick auf die Typen, die Sie tatsächlich zu erhalten sind. Wenn der Haltepunkt nicht erreicht wird, haben Sie ein anderes Problem.

+0

Ja, ich fand es !!!!! :). Ich muss JSON.Stringify (arg2) verwenden und es dann vom Skript an C# übergeben. Gut!!! Dann muss ich wieder in ein Objekt konvertieren, indem ich eine JSON-Bibliothek für .NET verwende :) :) – Omkar

+0

JSON.NET oder JavascriptSerializer –

Verwandte Themen