Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Can';不要将分类词典传递给Web服务?_C#_.net_Web Services_Dictionary_Static - Fatal编程技术网

C# Can';不要将分类词典传递给Web服务?

C# Can';不要将分类词典传递给Web服务?,c#,.net,web-services,dictionary,static,C#,.net,Web Services,Dictionary,Static,这是我的asmxWebService方法的快速代码: [WebMethod] public static string Test(SortedDictionary<string, string> signature_additional_parameters) { return "empty"; } [WebMethod] 公共静态字符串测试(SortedDictionary signature\u附加参数) { 返回“空”; } 但它说: 不支持类型System.Col

这是我的asmx
WebService方法的快速代码:

[WebMethod]
public static string Test(SortedDictionary<string, string> signature_additional_parameters)
{
    return "empty";
}
[WebMethod]
公共静态字符串测试(SortedDictionary signature\u附加参数)
{
返回“空”;
}
但它说:

不支持类型System.Collections.Generic.SortedDictionary`2[[System.String,mscorlib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=23523TEASDV],[System.String,mscorlib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=23523TEASDV]],因为它实现了IDictionary

如果我将方法设置为static
,它就可以工作,但此时我无法通过WebService调用该方法


如何解决此问题?

字典(IDictionary)不可序列化。一个简单的解决方法是创建一个包含键和值类的类的列表,并确保键是唯一的。

查看此链接,但如果需要此类,还需要在客户端调用程序上定义它。“这是分散整个系统的权力。”@markzzz不是真的。与wcf一样,它在客户端制作数据契约的副本。它只是定义了交换数据的方式。如果这确实是一个问题,您可以使用{0}格式的字符串;{1} 然后分开,但我不会那样做。