我正在编写一个将耗尽浏览器的Silverlight 4(可能是5个)应用程序。
我需要从SQL CE数据库加载数据,并且还引用存储在本地驱动器上的GIS数据。
执行这两项操作的代码将存储在单独的数据访问层程序集中,因为它将与其他解决方案共享。
如何使用Silverlight项目中的DAL程序集?我是否必须沿着P / Invoke路线走,还是有更简单的方法?
答案 0 :(得分:1)
RickNZ是对的。 Silverlight应用程序无法访问非Silverlight库(除非它是portable library),也无法在用户上传文件时访问本地文件。我认为,以下是您的实用选项列表:
从Silverlight转换为WPF通常非常简单,因为Silverlight或多或少是WPF的子集。当然,如果其他两个应用程序不是OOB应用程序,这可能不是一个选项。
如果你想坚持使用Silverlight,那么我建议你写一个快速的Rest服务,让你的应用程序可以访问它。
注意:根据SteveChadbourne的更正,您可以使用平台调用,但只能在Silverlight 5中使用。只要您的应用程序使用此新功能,它就必须作为完全信任运行Windows机器上的应用程序。
答案 1 :(得分:0)
您可以在Silverlight项目中引用并包含其他DLL。但是,请注意,Silverlight的.NET运行时与“常规”.NET运行时不同,因此在.NET Framework的哪些部分可用方面存在一些实质性限制。
此外,请记住,Silverlight在客户端的沙箱中运行,因此除了通过IsolatedStorage之外,它无权访问本地驱动器。
您是否考虑过使用ClickOnce WPF客户端?这将解决上述两个问题。