2011-02-24 51 views
1

我構建了一個使用Silverlight和WCF的服務客戶端應用程序,我在服務器端有一個Model項目(其中包含POCO),並且我想將這些相同的實體共享到Silverlight-客戶端應用程序,我想,嘿!我可以將Model項目更改爲Silverlight類庫,它應該可以正常工作。引用到Silverlight類庫

我做了更改,現在,我可以添加引用,但它獲得像引用未解決時一樣的感嘆號...並且如果您查看屬性的「已解決「設置爲‘假’,這是造成下面的代碼分析錯誤:

CA0058 [CA0001] [2]

請注意: 這是不是從引用一個典型的類庫的典型問題一個Silverlight項目(我知道不能這樣做),但是另一種方式。

回答

2

出於同樣的原因,您不能從Silverlight項目中引用CLR程序集,您不能從CLR項目中引用Silverlight程序集 - 它們是不同的運行時。

+0

這並不酷......我試圖避免代碼複製,當我想到它似乎有seense,感謝您的評論! – 2011-02-24 06:56:07

3

它應該可以正常工作(與Wayne說的不同,實際上可以從面向完整.NET Framework的項目中引用Silverlight程序集)。但是,您可能在此項目中引用了完整的.NET Framework無法加載的情況(通常需要保留對最基本類型的引用)。你有兩個備選方案。

  1. 創建兩個類庫項目(一個針對Silverlight,其他.NET框架),並分享他們之間的文件,我在本文中討論:http://www.silverlightshow.net/items/Building-a-Silverlight-Line-Of-Business-Application-Part-3.aspx

  2. 試用便攜式圖書館工具(目前處於測試階段):http://blogs.msdn.com/b/sburke/archive/2011/01/23/3-screen-coding-is-here-portable-library-tools-allow-you-to-target-multiple-net-platforms-with-one-binary.aspx

希望這有助於...

克里斯·安德森

+0

非常有趣...不是我在想什麼,我曾經與WPF合作過,並且在客戶端和服務之間共享模型真的很酷,我試圖用silverlight做同樣的事情,因爲Silverlight客戶端只是要做一個兩層應用程序,我想我可能只是在實際的Silverlight應用程序中使用代理生成的分類。 – 2011-02-24 06:54:08

+0

我只是忘了說謝謝?非常感謝你Chris,我真的很感謝你的評論 – 2011-02-24 06:54:39

+1

我認爲我支持我的(不可否認的)答案 - 只是因爲從技術上講,從CLR項目中添加一個對SL程序集的引用並使其能夠編譯,你的意思是你應該。在運行時你可能會處於一個痛苦的世界。讓編譯器幫助您 - 並使用Add as Link ...方法在兩個項目之間共享代碼文件,每個項目都以其適當的運行時爲目標。 – lesscode 2011-02-24 12:34:45