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
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
JSON.NET oder JavascriptSerializer –