Silverlight WCF RIA服务项目中的代码生成

时间:2012-04-12 22:38:45

标签: c# .net silverlight wcf-ria-services

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

我尝试在服务器上使用.shared.cs文件约定以及链接文件(原始文件在服务器上)。客户认为有一个重复的类,所以我把它改成了一个部分类(我不愿意)。然后它抱怨重复的属性,所以我尝试了this stack overflow question的解决方案。我遇到的问题是无法访问服务器上原始类中的枚举。

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

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

记录在案here

答案 2 :(得分:0)

您是否考虑过使用Portable Library Extension tools

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