0

我有一个使用 wcf ria 服务连接到服务器的 silverlight 4 项目。我有一个需要在客户端(silverlight)和服务器上使用的公共类。实现这一目标的最佳方法是什么?

我尝试在服务器上使用 .shared.cs 文件约定以及链接文件(原始文件在服务器上)。客户认为有一个重复的类,所以我将其更改为部分类(我不想这样做)。然后它抱怨重复的属性,所以我尝试了这个堆栈溢出问题的解决方案。我在使用此解决方案时遇到的问题是无法访问服务器上原始类中的枚举。

我还尝试创建一个其他项目都可以引用的类库项目(silverlight 客户端和服务器)。问题是找到一种项目类型来创建两个项目都可以引用。Silverlight 抱怨非 silverlight 项目,反之亦然。

4

3 回答 3

0

我认为这里最好的解决方案是在解决方案中创建一个新项目(您可以将其称为 Helpers、Common 等)并在客户端和服务器项目中添加引用。这样,您将在两者中使用相同的类,并且如果您更改类的结构,它将影响两个项目。

于 2012-04-13T00:45:12.930 回答
0

我不确定您的问题来自哪里(您无法访问您的枚举是什么意思?)但是您可能会发现.NET 支持一种称为程序集共享的功能,该功能旨在共享一些基本类型跨越 silverlight 和 .net。请记住,您应该引用 Silverlight 程序集,而不是 silverlight 项目。如果这破坏了您的编译顺序,请在您的 csproj 文件中添加一个“假”项目引用,如下所示:

<ProjectReference Include="..\MySilverlightSharedProject.csproj">
  <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>

如此处所述

于 2012-04-13T09:51:04.443 回答
0

您是否考虑过使用便携式库扩展工具

这里引用,可移植类库项目使您能够编写和构建在多个 .NET Framework 平台上工作的托管程序集。

于 2012-04-13T19:35:07.173 回答