将自定义类从.Net ActiveX控件(DLL)传递到Javascript

时间:2011-02-25 17:21:39

标签: c# javascript .net activex

我目前在.Net 2.0中创建了一个dll,它有一个COM可见组件,用作IE中网页上的ActiveX对象。

这个概念很好用,调用函数,引发事件,来回传递变量。问题来自于复杂的信息类别。

例如,我有这个课程:

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 个答案:

答案 0 :(得分:1)

Json只是文字,所以你应该能够创建自己的json。

查看此链接以了解实施情况 http://geekswithblogs.net/Mochalogic/articles/103330.aspx

或者也许试试json.net enter link description here

在客户端浏览器上安装了json后,只需将其转换为对象即可调用eval。查看Douglas Cockford的网站,了解更强大的json eval解决方案。