public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
JavascriptSidekick jssk = new JavascriptSidekick();
if (HtmlPage.IsEnabled)
HtmlPage.RegisterScriptableObject(
"JavascriptSidekick", jssk);
}
}
public class JavascriptSidekick
{
public string[] ConvertToStringArray(ScriptObject obj)
{
return obj.ConvertTo<string[]>();
}
[ScriptableMember]
public string Test1(ScriptObject obj)
{
return string.Join(",", ConvertToStringArray(obj));
}
[ScriptableMember]
public string Test2(object[] ary)
{
return string.Join(",",
ary.Select(s => s.ToString()).ToArray());
}
}
function onSilverlightLoad(sender, args) {
var slCtl = sender.getHost();
var jssk = slCtl.Content.JavascriptSidekick;
alert(jssk.Test1(["A","B","C"]));
alert(jssk.Test1([]));
//失敗
//NullReferenceException
alert(jssk.Test1(null));
//失敗 ArgumentException
//Invalid args for this operation.
alert(jssk.Test1());
//失敗 ArgumentException
//This object cannot be converted to
//the specified type 'System.Object[]'
alert(jssk.Test2(["A","B","C"]));
}