2015-03-19 49 views
1

在某些項目中,當我向WCF服務添加服務引用時,它會爲共享類庫中共享的類創建數據源文件,但是在其他項目中不會創建數據源。 Reference.cs文件是不同的,第一種情況下類型來自類庫,後者在Reference.cs文件中。這些不兼容。向WCF添加服務引用並不總是創建.datasource文件

在這種情況下觸發數據源文件的自動生成是什麼? 「添加服務引用」對話框中的高級選項是相同的,所以其他內容必須在我身上玩技巧。

更新:結果不需要數據源文件。這是在Reference.cs文件中生成的代碼,它使整個區別變得完全不同。我可以手動編輯方法的參數以指向類庫,它可以工作。從長遠來看,這當然不是一個解決方案,因爲每次更新服務參考時都必須這樣做。希望有人會來,誰知道這個問題的觸發。

+0

您的意思是說...您正在向您添加服務引用WCF服務?或者您將WCF服務作爲服務引用添加到您的項目中?請展示一些示例 – 2015-03-19 11:52:21

+0

我有一個包含一些類的類庫。這些類用作WCF服務的參數和結果。 在第三個項目中添加服務引用時(全部在同一個解決方案中),它有時會創建.datasource文件,而其他時間則不會。我需要數據源文件和Reference.cs來使用類庫,而不是在Reference.cs中創建的新類。 我甚至可以在同一個項目中創建兩個不同的服務引用,其中一個創建數據源,但另一個不創建。 我不知道是什麼觸發VS在某些情況下創建.datasource文件,而不是在其他情況下。 – bleze 2015-03-19 12:15:23

+0

好的。你可以做的是:**右鍵點擊你的服務參考**,然後**點擊配置服務參考**,然後**取消選擇'重新使用refrenced assemblies'中的類型**,然後點擊確定。希望能按照你的期望工作。 – 2015-03-19 13:18:30

回答

0

當您添加服務引用時,該文件由VS創建。它用於使客戶端UI組件能夠綁定到模型(數據合同)。我不知道他們爲什麼不是爲「全部」服務創建的(但我想這取決於該服務如何定義和使用數據合同(如:無合同無數據文件))。

下面是一些有用的鏈接: https://msdn.microsoft.com/en-us/library/ee373840.aspx What are the WCF Service Reference .datasource files?

UPDATE:你是對的不應該依賴於消費服務。這裏有兩個相關的鏈接(即impliece,該文件是由VS包括): http://objectmix.com/dotnet/797048-wcf-service-reference-datasource-file-name-length-problem.html Disable automatic generation of datasources file when updating service references

所以看起來是由VS創建的文件,如果你不WAN /需要它,你可以通過它排除使用svcutil.exe創建代理

+0

該服務不能成爲問題,因爲在某些客戶端中,數據源文件是在相同服務中創建的,但不在其他客戶端中。我需要弄清楚是什麼觸發了這種創造。 – bleze 2015-03-19 12:18:53

+0

對您的更新的評論:重點在於VS不會在某些項目/解決方案中生成文件。我想要它。在不同的項目/解決方案中使用相同的方法。 – bleze 2015-03-19 14:53:09

相關問題