【问题标题】:Sorrow with Data Transfer Objects in Silverlight / WCFSilverlight / WCF 中的数据传输对象的遗憾
【发布时间】:2010-10-11 02:54:22
【问题描述】:

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

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

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

我可以做些什么来解决这个问题,还是我坚持使用不太优雅、多余的解决方案?

【问题讨论】:

    标签: silverlight wcf dll azure data-transfer-objects


    【解决方案1】:

    多目标是您的最佳选择。 Microsoft 的 Visual Studio 中有一篇文章对此进行了解释: http://msdn.microsoft.com/en-us/library/ff921092(PandP.20).aspx

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

    关键是确保文件中的代码与两个运行时兼容。如果需要根据运行时对某些方法进行单独的实现,那么您需要用编译指示将它们分开(即#ifdef SILVERLIGHT...)。

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

    【讨论】:

      【解决方案2】:

      看看使用this answer 的链接文件是否对你有用。

      【讨论】:

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