2012-11-08 47 views
3

我有項目,該項目是一個WCF服務(.SVC)看起來像以下:WCF返回數組而不是List即使集合類型== Generic.List

[ServiceContract] 
public interface IAdminQueries 
{ 

    [OperationContract] 
    List<Color> GetColors(); 

    [OperationContract] 
    List<PhoneType> GetPhoneTypes(); 

    ... 

我有另一個項目,是一個Web應用程序。我向上述服務添加服務參考。單擊高級按鈕並從集合類型中選擇Generic.List。所有似乎都應該如此。

我然後建立並獲得與下面的代碼中的錯誤:

AdminQueriesClient db = new AdminQueriesClient(); 
    List<Color> s = db.GetColors(); 

以下是錯誤:

Cannot implicitly convert type 'DogLicenseBO.DogLicenseServiceReference.Color[]' to 'System.Collections.Generic.List<DogLicenseBO.DogLicenseServiceReference.Color>' 

是東西擋住或覆蓋正常的序列化/反序列化進程?

編輯 我再次工作。不過,我想我需要我拿出的東西。

The Fix 這一切都開始了,因爲我必須將VS 2012項目轉換爲VS 2010.有很多我使用的功能,但必須降級。無論如何,VS 2012中的參考之一是Newtonsoft.Json。我在幾個地方使用它。當我在VS 2010中完成並重建時,一切都奏效了。現在我需要更多的測試來看看我能用什麼來代替Newtonsoft的Json序列化。

有什麼建議嗎?

+1

你需要刪除你的編輯,並問你一個新的問題,你的新問題,因爲你不可能得到一個答案,你已經編輯你的問題包括,你不想失去的上下文原來的問題。 http://stackoverflow.com/faq#howtoask –

+0

感謝@QuintinRobinson,好點。現在,Newtonsoft已經不在了,希望當我能夠回到這個項目時,我不必擔心它。 – Grandizer

回答

1

答案在編輯Fix後出現在我原來的帖子裏。但我也可以在這裏發佈。

這一切都開始了,因爲我必須將VS 2012項目轉換爲VS 2010.有很多我使用的功能,但必須降級。無論如何,VS 2012中的參考之一是Newtonsoft.Json。我在幾個地方使用它。當我在VS 2010中完成並重建時,一切都奏效了。現在我需要更多的測試來看看我能用什麼來代替Newtonsoft的Json序列化。

0

在添加了服務引用的客戶端中,右鍵單擊服務引用並選擇「配置服務引用」,在數據類型的部分下,它應該爲集合類型列出「System.Array」(因爲這是爲非.NET客戶端兼容性發出的默認值)。在這個區域中,您可以將其更改爲默認發佈通用列表,而不是數組。

+0

謝謝@Quintin,但是你提到的我在我原來的帖子裏說過。奇怪,它不工作(直到我的編輯聲明) – Grandizer

相關問題