2010-12-15 5 views
0

J'utilise le contrôle de navigateur WebKit dans mon application .net. Je suis également nouveau à JSON et ai peu de connaissance du manuscrit de Java. Mon est d'appeler une méthode C# méthode du code de script Java. Je sais qu'il existe une propriété "ObjectForScripting" avec le contrôle WebKit.Comment recevoir des données formées JSON en argument de méthode C#

Code C#: - Ce code est exécuté sur l'un des boutons. Lesquels injectent le script java dans la page HTML rendue.

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); 

code ci-dessus ci-dessous appelle la méthode Java script de rendu page HTML.

code Java Script:

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. 
} 

signature C# Méthode

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

donc dans la méthode de rappel ci-dessus, je ne suis pas en mesure d'obtenir second paramètre i.e.obj2 correctement. En C#. Je l'obtiens toujours en tant qu'objet. J'ai essayé de mettre cela à Object mais je n'ai pas travaillé. Comment dois-je le convertir au bon format?

Merci, Omky

Répondre

2

Essayer de changer votre signature de la méthode à:

public bool TestMethod(object obj1, object obj2) 

Définir un point d'arrêt sur elle et avoir un regard sur les types que vous êtes réellement recevez. En outre, si le point d'arrêt ne fonctionne pas, vous avez un problème différent.

+0

Oui je l'ai trouvé !!!!! :) Je dois utiliser JSON.Stringify (arg2) et le passer du script à C#. Bien!!! Ensuite, j'ai besoin de reconvertir en objet en utilisant une bibliothèque JSON pour .NET. :) :) – Omkar

+0

JSON.NET ou JavascriptSerializer –

Questions connexes