【问题标题】:Expose C# classes in .net 4 class library to Silverlight App将 .net 4 类库中的 C# 类公开给 Silverlight 应用程序
【发布时间】:2011-06-01 20:43:43
【问题描述】:

我从第三方公司购买的 C# 类库中有一堆类。

我想使用这些类并通过继承它们来创建我的类。 我已经在 .net 4 wpf 应用程序上完成了所有工作。

然后我想在我的 silverlight 应用程序中使用这些类。

我有什么选择,哪个是最好的选择? 我想以这样一种方式使用它,以便我可以更新第 3 方公司的 DLL,因为他们每个月都会发布新版本。

再强调几点:

我们几乎没有选择。 1.链接类(作为添加现有项目但带有链接) 2. 创建接口并作为链接类在WCF之间共享,让所有类继承接口 3. 使用 RIA 服务,让 Web 应用程序创建自动代码以将其公开给 Silverlight。

还有其他选择吗?如果不是,那么哪一个更适合我所面临的情况?

谢谢

【问题讨论】:

  • Silverlight 的哪个版本?
  • 你有库的源代码吗?
  • 没有。另外我每季度都会发布新版本等,所以我不想自己修改代码

标签: c# wpf silverlight wcf


【解决方案1】:

值得注意的是,附带 Silverlight 的 .NET 平台与附带完整 .NET Framework 的平台不同。

这意味着第三方程序集与 Silverlight 兼容的可能性很小,即使 SL 使用相同的 IL。如果第三方程序集仅引用 mscorlib 或 System.dll,则可以将其编译为 SL 和 WPF 之间的跨平台程序集。

但是,在所有其他情况下,SL 和完整 .NET 平台之间的差异将阻止程序集与 Silverlight 兼容。

如果第三方软件与 UI 或网络有任何关系,如果该软件使用 Windows API...等。它将无法在 Silverlight 应用程序中运行。

这就是不能从 SL 项目中引用一般 .NET 程序集的原因。但是,在某些情况下,SL 程序集可以用于一般的 .NET 项目。

但是,如果程序集执行计算和异步任务,您可以在服务器上执行它,并将结果发送回 Silverlight 应用程序。

例如,如果类库生成报告、文件或图像,这是一个很好的选择。

第三方库是做什么的?

【讨论】:

  • 第三方包含许多函数,如果输入是 A 类并且 A 类是其库的一部分,它们会执行复杂的验证检查(以及其中 100 多个)。所以想在silverlight中继承classA,调用这些方法。
  • 您在哪里以及多久致电一次图书馆?我觉得您唯一可行的选择是通过远程处理调用(例如 WCF)在服务器上调用它。
【解决方案2】:

如果您没有源代码,则无法在 Silverlight 应用程序中引用类库(您可能已经知道)。不重新编译就无法在 Silverlight 中使用标准 .NET 库,因为 Silverlight 是不同的框架和不同的 CLR。​​

您可以使用服务器上的库并创建一些服务来访问该功能。

我认为没有其他方法可以实现您的目标,除非您获得可以放入名为 Shared 的目录中的源代码。然后它将被复制到您的 Silverlight 应用程序并在 Silverlight 中编译。

【讨论】:

    猜你喜欢
    • 2012-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多