在我的 WPF 应用程序中,我有一个WebBrowser
控件,它承载一些 HTML5/javaScript 内容。随着webBrowser.ObjectForScripting
我将带有参数的特殊对象传递给该脚本。
一切都很好,直到我尝试传递一个简单的双值一维数组。我尝试了很多方法,从具有该数组的简单公共字段开始,以复杂的方法结束,例如
[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
[ComVisible(true)]
[Guid("1F436D05-1111-3340-8050-E70166C7FC86")]
public class ScriptObject
{
[ComVisible(true)]
public double[] d = { 1,2,3 };
[ComVisible(true)]
public object Data { get { return d; } set { d = value; } }
[ComVisible(true)]
[return: MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_ARRAY)]
public object GetArr()
{
return d;
}
}
但似乎没有任何效果。当尝试通过or访问数组时,我经常从控件内部的 javaScript 代码中获取异常,webBrowser
例如“expexted string”或类似的东西
。window.external.GetArr()
window.external.Data
如果我没有弄错文档(http://msdn.microsoft.com/ru-ru/library/cc645074(v=vs.95).aspx),应该有一个正确的方法来做到这一点,但是如何?
感谢帮助!