Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Silverlight/WCF中使用数据传输对象_Silverlight_Wcf_Dll_Azure_Data Transfer Objects - Fatal编程技术网

在Silverlight/WCF中使用数据传输对象

在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

我有一个Silverlight应用程序托管在Azure web角色ASP项目中。ASP项目公开了一个WCF服务

我想要一组数据类型的类定义。有人建议创建第三个项目(类库),并从SL和ASP添加对它的引用。我开始这样做,但是Silverlight项目抱怨说您只能添加对Silverlight项目的引用

然后,我创建了一个Silverlight类库,并将数据类移动到其中。但是,我需要添加一些.dll引用,例如对WindowsAzure存储客户端的引用。然后Silverlight类库告诉我只能添加对Silverlight 4-Friendls.dll的引用,而WindowsAzure不是其中之一。太棒了


我能做些什么来解决这个问题,还是我只能使用一个不那么优雅、冗余的解决方案?

看看按照使用链接文件是否对您有好处。

多目标定位是您的最佳选择。Microsoft的Visual Studio中有一篇文章对此进行了解释:

基本上,您可以创建Silverlight和标准.NET类库,每个类库都有不同的名称,然后在每个类库中包含相同的文件。通常,文件实际上只在一个类库中,然后在第二个类库中进行软链接

关键是确保文件中的代码与这两个运行时兼容。如果需要根据运行时为某些方法单独实现,则需要使用pragmas(即#ifdef SILVERLIGHT…)将它们分开


但是,如果您只做数据结构,只要Silverlight支持您正在使用的对象,就应该没有问题。

谢谢您的建议,但我仍然不明白这将如何让我绕过只能从SL项目引用SL程序集的限制。@Ros-简单:创建一个新的Silverlight类库,但不是复制包含数据对象定义的文件,而是将它们作为链接文件添加。这意味着您的ASP.NET和Silverlight项目具有完全相同的源文件。相同的文件,只是通过Silverlight项目公开,以便您的SL应用程序可以引用它们。