如何从Silverlight 4/5引用托管代码

时间:2011-12-28 00:57:19

标签: silverlight

我正在编写一个将耗尽浏览器的Silverlight 4(可能是5个)应用程序。

我需要从SQL CE数据库加载数据,并且还引用存储在本地驱动器上的GIS数据。

执行这两项操作的代码将存储在单独的数据访问层程序集中,因为它将与其他解决方案共享。

如何使用Silverlight项目中的DAL程序集?我是否必须沿着P / Invoke路线走,还是有更简单的方法?

2 个答案:

答案 0 :(得分:1)

RickNZ是对的。 Silverlight应用程序无法访问非Silverlight库(除非它是portable library),也无法在用户上传文件时访问本地文件。我认为,以下是您的实用选项列表:

  • 在Silverlight中重写DAL
  • 为DAL创建一个简单的Soap或Rest服务,让Silverlight应用程序以这种方式访问​​
  • 坚持使用WPF并将其他应用程序转换为WPF(如果它们也是OOB)

从Silverlight转换为WPF通常非常简单,因为Silverlight或多或少是WPF的子集。当然,如果其他两个应用程序不是OOB应用程序,这可能不是一个选项。

如果你想坚持使用Silverlight,那么我建议你写一个快速的Rest服务,让你的应用程序可以访问它。

注意:根据SteveChadbourne的更正,您可以使用平台调用,但只能在Silverlight 5中使用。只要您的应用程序使用此新功能,它就必须作为完全信任运行Windows机器上的应用程序。

答案 1 :(得分:0)

您可以在Silverlight项目中引用并包含其他DLL。但是,请注意,Silverlight的.NET运行时与“常规”.NET运行时不同,因此在.NET Framework的哪些部分可用方面存在一些实质性限制。

此外,请记住,Silverlight在客户端的沙箱中运行,因此除了通过IsolatedStorage之外,它无权访问本地驱动器。

您是否考虑过使用ClickOnce WPF客户端?这将解决上述两个问题。

相关问题