【问题标题】:Is it possible to access a Silverlight control via the COM automation model?是否可以通过 COM 自动化模型访问 Silverlight 控件?
【发布时间】:2011-02-01 04:12:09
【问题描述】:

我试图通过 COM 自动化模型访问 Silverlight 控件上的方法。理论上它应该是可能的,因为将 Silverlight 控件的方法公开为可编写脚本的成员会通过 IDispatch 接口公开它们。我已经能够通过自动化模型正确访问 IDispatch 接口,但是当我尝试通过 Invoke 调用公开接口上的方法时,它会崩溃。

我想知道是否有人知道这是否是预期的行为,即我违反了一些基本的沙盒要求,或者这是否应该工作并且它只是我的实现中需要纠正的东西?干杯。

【问题讨论】:

  • 您在哪个网络浏览器中托管 Silverlight 应用程序?
  • 在这种情况下,它适用于专有框架内的显示插件,该框架使用 IE 框架来显示 HTML 页面,即自定义帮助应用程序。 Silverlight 控件将无法在我们的框架之外使用。

标签: silverlight com automation


【解决方案1】:

有一个替代的托管模型可用,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

【讨论】:

    【解决方案2】:

    要回答我的问题,是的,这是可能的,并且完全按照我的问题描述。需要注意的是,Silverlight 没有提供与对 IDispatch 接口的调用何时成功对应的事件,例如当它初始化“足够”以正确响应时。

    在停止尝试加载事件(例如 OnLoad、OnPageComplete 等)并将其手动关闭按钮或类似操作后,我可以成功访问 IDispatch 界面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-11
      • 2011-11-19
      • 1970-01-01
      • 2011-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多