繁体   English   中英

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

[英]Passing a custom class from a .Net ActiveX Control (DLL) to Javascript

我目前在.Net 2.0中创建了一个DLL,该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

Json只是文本,因此您应该能够创建自己的json。

查看此链接以获取实现http://geekswithblogs.net/Mochalogic/articles/103330.aspx

或者尝试json.net 在此处输入链接描述

将json放在客户端浏览器上后,将其转换为对象所需要做的就是调用eval。 请访问Douglas Cockford的网站,以获得更强大的json评估解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM