在Silverlight/WCF中使用数据传输对象
我有一个Silverlight应用程序托管在Azure web角色ASP项目中。ASP项目公开了一个WCF服务 我想要一组数据类型的类定义。有人建议创建第三个项目(类库),并从SL和ASP添加对它的引用。我开始这样做,但是Silverlight项目抱怨说您只能添加对Silverlight项目的引用 然后,我创建了一个Silverlight类库,并将数据类移动到其中。但是,我需要添加一些.dll引用,例如对WindowsAzure存储客户端的引用。然后Silverlight类库告诉我只能添加对Silverlight 4-Friendls.dll的引用,而WindowsAzure不是其中之一。太棒了在Silverlight/WCF中使用数据传输对象,silverlight,wcf,dll,azure,data-transfer-objects,Silverlight,Wcf,Dll,Azure,Data Transfer Objects,我有一个Silverlight应用程序托管在Azure web角色ASP项目中。ASP项目公开了一个WCF服务 我想要一组数据类型的类定义。有人建议创建第三个项目(类库),并从SL和ASP添加对它的引用。我开始这样做,但是Silverlight项目抱怨说您只能添加对Silverlight项目的引用 然后,我创建了一个Silverlight类库,并将数据类移动到其中。但是,我需要添加一些.dll引用,例如对WindowsAzure存储客户端的引用。然后Silverlight类库告诉我只能添加对Si
我能做些什么来解决这个问题,还是我只能使用一个不那么优雅、冗余的解决方案?看看按照使用链接文件是否对您有好处。多目标定位是您的最佳选择。Microsoft的Visual Studio中有一篇文章对此进行了解释: 基本上,您可以创建Silverlight和标准.NET类库,每个类库都有不同的名称,然后在每个类库中包含相同的文件。通常,文件实际上只在一个类库中,然后在第二个类库中进行软链接 关键是确保文件中的代码与这两个运行时兼容。如果需要根据运行时为某些方法单独实现,则需要使用pragmas(即#ifdef SILVERLIGHT…)将它们分开
但是,如果您只做数据结构,只要Silverlight支持您正在使用的对象,就应该没有问题。谢谢您的建议,但我仍然不明白这将如何让我绕过只能从SL项目引用SL程序集的限制。@Ros-简单:创建一个新的Silverlight类库,但不是复制包含数据对象定义的文件,而是将它们作为链接文件添加。这意味着您的ASP.NET和Silverlight项目具有完全相同的源文件。相同的文件,只是通过Silverlight项目公开,以便您的SL应用程序可以引用它们。