2011-02-25 69 views
0

我目前有一个在.Net 2.0中创建的DLL,它具有一个COM可见组件,该组件可用作IE内网页上的ActiveX对象。将.Net ActiveX控件(DLL)中的自定义类传递给Javascript

该概念正常工作,调用函数,引发事件,来回传递变量。问题伴随着复杂的信息类别。

例如,我有这个类:

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中定义返回变量的类型。

任何帮助,将不胜感激。

编辑:当然,因为不包括净直到3.5,而我们的目标是2.0

回答

1

JSON是只是文字,所以你应该能够创建自己的JSON我不能使用序列化。

看看这个链接,实现 http://geekswithblogs.net/Mochalogic/articles/103330.aspx

也许尝试json.net enter link description here

一旦你有你的客户端浏览器的JSON所有你需要做的将其转换为一个对象调用eval。看看Douglas Cockford的网站,以获得更强大的json eval解决方案。

+0

看看JSON.net似乎是最好的选择。有趣的是,2.0实际上引用了3.5框架(对于linq等)。我发现一个较旧的1.3版本,现在似乎正在工作。让我在我的dll中包含代码,因为有源代码,所以我们可以更容易地部署它。非常感谢! – elbweb 2011-02-25 21:19:31

相关问题