Web services 如何传递通用键值对<;Tkey,TValue>;使用WebMethod? [WebMethod] 公共无效测试(KeyValuePair详细信息) { }

Web services 如何传递通用键值对<;Tkey,TValue>;使用WebMethod? [WebMethod] 公共无效测试(KeyValuePair详细信息) { },web-services,generics,key-value,Web Services,Generics,Key Value,我已经定义了上面的web方法 KeyValuePair在中定义 如何将其添加到wsdl自动生成的文件中? 我必须定义此类型,否则我会在wsdl文件中得到一个空定义: [WebMethod] public void Test(KeyValuePair<string,string> details) { } 对于这个特殊问题,我建议将签名更改为 <s:complexType name="KeyValuePairOfStringString" /> 因为

我已经定义了上面的web方法

KeyValuePair在中定义

如何将其添加到wsdl自动生成的文件中? 我必须定义此类型,否则我会在wsdl文件中得到一个空定义:

 [WebMethod]
public void Test(KeyValuePair<string,string> details)
{        
}

对于这个特殊问题,我建议将签名更改为

<s:complexType name="KeyValuePairOfStringString" />

因为我从来没有让web服务很好地处理泛型。如果您有任何其他方法存在类似问题,您可以使用自动生成的代理类,或者将内容作为对象传入,并在web方法中强制转换它们。

我也有这个问题。看起来我现在必须创建一个特定的类。

+1-这让我很恼火-我希望有人能找到一个合适的解决方案。这并没有真正起作用,因为我的目标是通过一个列表,实际上我从dicitonary开始,然后降级到一个列表。。这个列表实际上是有效的,但问题仍然在于wsdl没有正确解析的KeyValuePair-我猜是因为我没有从问题中找到它的定义-这个链接似乎被破坏了,而且我也不知道如何将它添加到我的Web服务中-以便wsdl使用它来了解KeyValuePairOfStringString的真正含义。我的临时解决方案是手动创建一个名为KeyValuePairOfStringString的类,但是我还需要KeyValuePairOfStringLong和KeyValuePairofSomeEnumSomeOther类,这非常难看!!!:(很抱歉,我帮不上忙-请务必再次访问此帖子,如果您找到更好的解决方案,请告诉我们!
public void Test(string key, string value)