Как получить данные в формате JSON в аргумент метода C # - PullRequest
0 голосов
/ 15 декабря 2010

Я использую управление браузером WebKit в своем приложении .net.Я также новичок в JSON и мало знаю о сценариях Java.Мой вызов метода одного метода C # из кода сценария Java.Я знаю, что есть свойство «ObjectForScripting» с элементом управления WebKit.

C # Код: - Этот код выполняется одним нажатием кнопки.Который внедряет Java-скрипт в отображаемую HTML-страницу.

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

Выше кода вызывается метод Java-сценария из отображаемой HTML-страницы.

Код 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.
}

C # Подпись метода

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

Таким образом, в приведенном выше методе обратного вызова я не могу правильно получить второй параметр ieobj2.В C #.Я всегда получаю это как Объект.Я попытался установить это в Object, но не сработало. Как мне преобразовать его в правильный формат?

Спасибо, Омки

1 Ответ

2 голосов
/ 15 декабря 2010

Попытка изменить подпись вашего метода на:

public bool TestMethod(object obj1, object obj2)

Установите на нем точку останова и посмотрите на типы, которые вы фактически получаете. Кроме того, если точка останова не срабатывает, у вас другая проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...