2013-03-12 49 views
0

產生子類的這個問題似乎很熟悉,但我曾在這裏已經回答了這些,並在互聯網上沒有找到答案:VS 2012「添加服務引用」對於一些共享組件

編輯 目前,服務參考再次正常工作,但我仍在尋找長期解決方案。

使用與WCF Web服務通信的Windows Phone應用程序我注意到,有時在VS 2012中的「添加服務引用」選項的Reference.cs中生成了部分類,即使原始類位於程序集通過「項目參考」由客戶端和服務共享。這似乎是每次服務再次發佈或客戶編譯時隨機發生的。正如人們可以想象的那樣,讓相當多的「無法隱式轉換類型」錯誤。大多數情況下,我只是玩一些選項,再次刪除並添加服務參考,重新啓動VS等等,希望發生一些奧術魔法,遲早會發生。但這不是一種滿足我或者我想永遠使用的方式。特別是因爲問題昨天再次出現,直到現在,沒有發生奧術魔法。因此,這裏是我試過到目前爲止:

  1. 卸下和具有不同的選項和名稱(如共享中的所有組件,共享指定的程序集...)
  2. 重啓VS有時有和沒有管理員再次添加服務引用特權
  3. 卸下整個類引起從共享組件的問題,並再次將其添加(編譯和之間出版中)
  4. 在看看在WCFTestClient命名空間,其從由VS
  5. 所有的產生的一個不同以上有所不同機器

我也仔細地通過this和其他類似的問題在這裏工作。

這些都沒有使我能夠自己解決問題,儘管我學到了很多東西。現在我正在使用SVCUtil生成代理類,但是由於我對整個WCF-Stuff都很陌生,所以還沒有成功。 我會很感激,如果

  1. 有人能賜教是什麼讓「添加服務引用」選項生成畢竟和如何避免那些不需要的部分類。
  2. 提供了關於如何正確使用SVCUtil工具生成代理類並在VS項目中重用它的說明
  3. 有一種方法可以避免這種「從元數據生成代碼」的整個過程,我的意思是,我可以訪問兩個實現

我真的想解決這個問題,但隨着越來越絕望,我願意嘗試做大量的工作,如果這個問題不會再發生之後。目前我正在研究第二種可能的解決方案。考慮到第三,我正在閱讀this article,但在嘗試之前,我想在此提出第二個意見,這是否是一種好方法,因此可以解決我的問題,也可以查看有關該主題的最新文章。

對不起,我一直在這個工作了很長一段時間了,而且知識寥寥無幾,大量的試用信息都有很多信息。

回答

2

嘗試取消選中「在引用程序集中重用類型」以查看是否有幫助。

Try unchecking "Reuse types in referenced assemblies".

+1

如果未選中此框,沒有爲每個DataContract創建一個分部類。但是我不想要其中的任何一個,因爲所有DataContracts都在共享程序集中。再次重新檢查這個盒子會將部分類別減少到兩個,但即使這些是不需要的。 – Scipio 2013-03-12 21:30:22