我正在尝试尝试通过COM自动化模型访问Silverlight控件上的方法。从理论上讲,它应该是可能的,因为暴露Silverlight控件的方法是可脚本化的成员通过IDispatch接口公开它们。我已经能够通过自动化模型正确访问IDispatch接口,但当我尝试通过Invoke调用暴露的接口上的方法时,它会崩溃。
我想知道是否有人知道这是否是预期的行为,即我违反了一些基本的沙盒要求,或者这是否应该有效,而这只是我实施中需要纠正的内容?欢呼声。
答案 0 :(得分:0)
有可用的备用托管模型,有关MSDN的详细信息:http://msdn.microsoft.com/en-us/library/dd550717(v=VS.95).aspx
使用这些方法非常复杂,但您可能只需要这样做。
这是Silverlight agcore COM参考:http://msdn.microsoft.com/en-us/library/cc296246(v=VS.95).aspx
答案 1 :(得分:0)
要回答我的问题,是的,这是可能的,完全按照我的问题的描述。需要注意的是,Silverlight没有提供与IDispatch接口调用成功时相对应的事件,例如:当它被初始化为“足够”以正确回应时。
在我停止尝试加载事件(例如OnLoad,OnPageComplete等)并使其手动退出按钮或类似操作后,我可以成功访问IDispatch界面。