【问题标题】:Call managed code from Silverlight application从 Silverlight 应用程序调用托管代码
【发布时间】:2012-03-12 03:43:25
【问题描述】:

我有MyDotNet4.dll,用户将其作为应用程序安装在机器上。就我而言,这是负责与 TWAIN 扫描仪接口的组件。

我的 Silverlight 应用程序也具有提升的权限(SL4 OOB 或 SL5 进出浏览器)

我想以某种方式使用 Silverlight 代码调用 MyDotNet4.dll 的方法。那可能吗?如何?任何指针或示例代码?

我的想法是拥有 Silverlight 应用程序,如果用户需要扫描 - 我会让他下载并安装真正的 Windows 应用程序,然后我想以某种方式从 Silverlight 与这个应用程序交谈。

【问题讨论】:

  • Silverlight 在与 regular .net 不同的运行时上运行,因此您可能必须自己构建一些机制来在两者之间进行通信。
  • 您是否考虑过改用 WPF,如果您可以使用可选的,那么痛苦会少得多?

标签: c# .net silverlight elevated-privileges


【解决方案1】:

它可能不起作用,但请查看此博客 http://netfxharmonics.com/2008/12/Reusing-NET-Assemblies-in-Silverlight,如果(如您的问题所示)您没有有问题的dll。我隐约记得我很久以前就使用该方法作为测试,但由于我有源代码,因此我最终使用文件级方法在我的 Silverlight 项目引用的 dll 和我的控制台应用程序项目之间共享公共代码

【讨论】:

    【解决方案2】:

    Silverlight 确实具有本地消息传递功能,只能在两个 silverlight 应用程序之间使用。 LocalMessaging

    请参阅以下内容

    从这个类似的 SO 帖子:Communicating with a Silverlight 4 LocalMessageReceiver from a Desktop Application 和另一个线程 here on the silverlight forums 看来你运气不好,你将必须实施你自己的通信方案。

    我假设您的 SL 应用需要调用扫描应用并获取图像。您可以运行您的扫描应用 like this,然后让该应用将图片放到一个已知目录中,然后您的 SL 应用可以选择该目录。

    【讨论】:

      猜你喜欢
      • 2012-04-22
      • 1970-01-01
      • 2013-08-24
      • 2012-04-15
      • 1970-01-01
      • 1970-01-01
      • 2010-09-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多