how to set Anonymous delegate as one parameter for InvokeSelf?
I tried to use InvokeSelf for silverlight to communicate with html: InvokeSelf can take object[] as parameter when making a call:
ScriptObject Myjs;
ScriptObject obj = Myjs.InvokeSelf(new object[] { element }) as ScriptObject;
then I want make a call like with anonymous delegate:
Object obj;
obj = Invoke开发者_开发知识库Self(new object[] { element, delegate { OnUriLoaded(reference); } });
I got the error said: Cannot convert anonymous method to type 'object' because it is not a delegate type
How to resolve this problem?
The problem is that you cannot assign an anonymous method to an object
. This is because the C# compiler doesn't know what delegate type should be used. You can fix the code by creating a delegate explicitly. Since this is Silverlight you can also use more succinct lambda expression notation:
obj = InvokeSelf(new object[]
{ element, new Action(() => OnUriLoaded(reference)) });
That said, I'm not sure if it is possible to pass a delegate to JavaScript, but you should be able to compile the code now and try that.
精彩评论