2010-07-12 40 views
4
[WebMethod] 
public void Test(KeyValuePair<string,string> details) 
{   
} 

我已經定義了上面的web方法。如何將通用KeyValuePair <Tkey,TValue>傳遞給WebMethod?

的KeyValuePair中定義 http://schemas.datacontract.org/2004/07/System.Collections.Generic

我怎樣才能把它添加到我的WSDL自動生成的文件? 我有,否則我得到的WSDL文件空的定義來定義這種類型:

<s:complexType name="KeyValuePairOfStringString" /> 
+1

+1 - 這讓我難以置信 - 我希望有人有一個體面的解決方案。 – 2010-07-12 13:58:46

回答

2

對於特定的問題,我建議你改變簽名

public void Test(string key, string value) 

,因爲我已經從來沒有Web服務與泛型很好地搭配。如果您有其他任何具有類似問題的方法,則可以使用自動生成的代理類,或者將對象作爲對象傳遞並將其轉換回Web方法。

+1

這真的沒有用,因爲我的目標是通過一個List 實際上我開始使用dicitonary,然後降級到列表。 列表actualy工作,但問題仍然與KeyValuePair 這是不正確的解析wsdl - 我的猜測是因爲我錯過了它的定義從 http://schemas.datacontract.org/2004/07/System.Collections.Generic 問題是 - 這個鏈接似乎被打破,我也不知道如何將它添加到我的web服務 - 爲了讓wsdl使用它來找出KeyValuePairOfStringString的真正含義。 – 2010-07-15 07:35:26

+0

我的臨時解決方案是手動創建一個名爲KeyValuePairOfStringString的類,但後來我還需要KeyValuePairOfStringLong和KeyValuePairOfSomeEnumSomeOtherClass 這相當醜陋! :( – 2010-07-15 07:36:56

+0

對不起,我忍不住 - 一定要重新訪問這個帖子,讓我們知道,如果你找到一個更好的解決方案! – 2010-07-15 09:57:39

1

我也有這個問題。看起來我現在必須創建一個特定的類。

+0

是的,沒有辦法解決這個問題,據我所知。 – 2010-10-31 11:56:59

相關問題