将.net 4类库中的C#类暴露给Silverlight App

时间:2011-06-01 20:43:44

标签: c# wpf silverlight wcf

我在第三方公司购买的C#类库中有很多类。

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

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

我有哪些选择,哪种选择最佳? 我希望以这样的方式使用它,以便我可以在每月发布新版本时更新第三方公司的DLL。

重新强调几点:

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

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

由于

2 个答案:

答案 0 :(得分:2)

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

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

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

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

这就是为什么无法从SL项目引用通用.NET程序集的原因。但是,有些情况下SL程序集可以在一般的.NET项目中使用。

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

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

第三方图书馆做了什么?

答案 1 :(得分:1)

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

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

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