在我的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;
}
}
但似乎没有任何效果。我经常从webBrowser
控件中的javaScript代码中获取异常,例如“expexted string”或类似的东西,当试图访问数组时
window.external.GetArr()
或window.external.Data
。
如果我没有误解文档(http://msdn.microsoft.com/ru-ru/library/cc645074(v=vs.95).aspx),应该有一个正确的方法来做到这一点,但是如何?
感谢您的帮助!