2012-04-12 53 views
0

我有一个silverlight 4项目,它使用wcf ria服务连接到服务器。我有一个公共类,我需要在客户端(silverlight)和服务器上使用。什么是完成这个最好的方法?Silverlight WCF RIA服务项目中的代码生成

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

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

+0

我已经使用了很多链接文件,并且他们工作得很好。你有没有技术上的理由不使用它们? – Andrew 2012-04-12 23:24:04

+0

我试过使用它们,但他们不允许我使用位于Silverlight项目中的共享cs文件中的枚举 – Ben 2012-04-13 16:10:40

回答

0

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

+0

我一直在尝试,但找不到帮助程序项目的正确类型的项目。 silverlight项目不能引用类库项目,并且服务器项目不能引用silverlight类库项目。 – Ben 2012-04-13 16:21:39

0

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

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

如记录here