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