将字节数组从javascript发送到silverlight

时间:2011-06-13 10:09:09

标签: javascript silverlight

可以这样做吗?

以下是不起作用的片段,但例外情况失败:

function SendBytesJS() {
    var control1 = document.getElementById('sl1');
    bytes = new Array(1, 2, 3);
    control1.Content.MainPage.SendBytesSL(bytes);
}

public partial class MainPage : UserControl
{
    public MainPage()
    {
        InitializeComponent();

        System.Windows.Browser.HtmlPage.RegisterScriptableObject("MainPage", this);
    }          

    [System.Windows.Browser.ScriptableMember]
    public void SendBytesSL(byte[] bytes)
    {
        // never gets here 
    }
}

1 个答案:

答案 0 :(得分:0)

HTML桥接器不支持字节数组,Javascript只能理解整数和浮点数(实际上是双倍)。

数组作为object[]传递,数字始终作为double传递。因此,您的代码需要看起来更像以下内容: -

 // Warning untested code
 [ScriptableMember]
 public void SendBytesSL(object[] arrayIn)
 {
     byte[] bytes = arrayIn.Select(o => Convert.ToByte(o)).ToArray();
 }