2012-04-12 50 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