Передача пользовательского класса из .Net ActiveX Control (DLL) в Javascript - PullRequest
0 голосов
/ 25 февраля 2011

В настоящее время в .Net 2.0 создана dll, в которой есть видимый COM-компонент, который используется в качестве объекта ActiveX на веб-странице в IE.

Концепция отлично работает, вызывая функцию, вызывая события, передавая переменные туда и обратно. Проблема связана со сложными классами информации.

Например, у меня есть этот класс:

public class ClientInfo {
    public ClientInfo() { }

    public ClientInfo(DataRow dr)
    {
        ClientName = dr["Name"].ToString();
        Address = dr["Address1"].ToString();
    }

    public string ClientName;
    public string Address;
}

Что достаточно просто. Затем у меня есть функция, которая создает возвращаемый массив из вышеупомянутого класса:

ArrayList arr = new ArrayList();

foreach (DataRow r in dsClients.Tables[0].Rows)
{
    arr.Add(new ClientInfo(r));
}

return arr.ToArray();

Из JavaScript, когда эта функция вызывается, возвращение не определено. Он отлично работает при вызове из другого проекта .Net (который состоит из простой кнопки для проверки этой самой проблемы).

Кажется, мне как-то нужно преобразовать возвращаемый объект во что-то более доступное через javascript (JSON?) Или, возможно, определить тип возвращаемой переменной в javascript.

Любая помощь будет оценена.

РЕДАКТИРОВАТЬ: Конечно, я не могу использовать сериализацию, потому что она не включена до .Net 3.5, и наша цель 2.0

1 Ответ

1 голос
/ 25 февраля 2011

Json - это просто текст, поэтому вы можете создать свой собственный JSON.

Проверьте эту ссылку для реализации http://geekswithblogs.net/Mochalogic/articles/103330.aspx

Или, возможно, попробуйте json.net enterописание ссылки здесь

Если у вас есть json в браузере клиента, все, что вам нужно сделать, чтобы преобразовать его в объект - это вызов eval.Взгляните на веб-сайт Дугласа Кокфорда, чтобы найти более надежное решение json eval.

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