如何将Anonymous委托设置为InvokeSelf的一个参数?

时间:2010-04-03 02:48:04

标签: c# html silverlight

我尝试使用InvokeSelf for silverlight与html通信: InvokeSelf可以在调用时将object []作为参数:

  ScriptObject Myjs;
  ScriptObject obj = Myjs.InvokeSelf(new object[] { element  }) as ScriptObject;

然后我想跟匿名委托打电话:

Object obj;
obj = InvokeSelf(new object[] { element, delegate { OnUriLoaded(reference); } });

我得到了错误说: 无法将匿名方法转换为“对象”类型,因为它不是委托类型

如何解决此问题?

1 个答案:

答案 0 :(得分:1)

问题是您无法为object分配匿名方法。这是因为C#编译器不知道应该使用什么委托类型。您可以通过显式创建委托来修复代码。由于这是Silverlight,您还可以使用更简洁的lambda表达式表示法:

obj = InvokeSelf(new object[] 
  { element, new Action(() => OnUriLoaded(reference)) }); 

那就是说,我不确定是否可以将委托传递给JavaScript,但是你应该能够立即编译代码并尝试。