我正在尝试使用Dynamic Data Display(D3)库在Silverlight 5应用程序(浏览器外)中显示图形。每当我尝试添加“DynamicDataDisplay.dll”作为参考时,我会在关闭对话框后再次将其删除。
但是我可以在普通的Windows窗体或WPF项目中使用该引用。这对Silverlight框架有一些限制吗?
我该怎么办?也许以不同的方式自己编译D3?
答案 0 :(得分:3)
Silverlight应用程序只能使用Silverlight项目编译的程序集。有例外,但对于任何与UI相关的事情都是如此。
因此,如果要在Silverlight应用程序中使用第三方库,则需要使用特殊的Silverlight版本而不是普通版本。 “普通”版本有时称为.NET4版本或WPF版本,以将其与Silverlight版本进行对比。
实际效果是Silverlight用于所有实际目的,而不是二进制兼容与完整的CLR。但是有相当多的源兼容性,包括核心框架的大部分和WPF的部分不兼容的子集。
实际上,构建并行WPF和Silverlight程序集的标准方法是使用两个项目将所有相同的源文件与一些条件编译链接起来。
幸运的是,正如@dtb指出的那样,动态数据显示已经支持Silverlight下载。但这同样适用于您可能考虑使用的任何第三方库:它需要具有Silverlight风格。
答案 1 :(得分:1)
如果D3 dll依赖于.Net的完整安装,而不仅仅是silverlight子集,Silverlight将不允许直接导入。您必须在服务器上托管.dll并向其公开异步服务方法。除非这是一个非常杀手的DLL,否则它是不值得的......
答案 2 :(得分:0)
您也可以使用便携式类库以及我是Silverlight