使用webservice返回字典

时间:2013-11-25 21:44:18

标签: dictionary c#-3.0 streamreader

我正在寻找一些帮助,使用WebService中的csv文件填充字典但是我无法返回结果。

我要将字典分成两个单独的列,这些列似乎有效,但我无法返回值,因为有两个而不是一个。

以下是代码:

{
    StreamReader streamReader = new StreamReader("T:/4 Year WBL/Applications Development/Coursework 2/2b/Coursework2bwebservice/abrev.csv");

    [WebMethod]
    public string Dictionary()
    {
        string  line;
       Dictionary<string, string> dictionary = new Dictionary<string,string>();
       while ((line =  streamReader.ReadLine()) !=null)
       {
       string[] columns = line.Split(','); 
       dictionary.Add(columns[0], columns[1]);

       return dictionary;    
       }
    }

我收到错误“无法隐式转换类型System.Collections.Generic.Dictionary<string,string to string>"

任何想法都会很棒,谢谢你的时间。

1 个答案:

答案 0 :(得分:0)

public string Dictionary()

返回错误的签名。你需要返回一个实际的字典:

public Dictionary<string, string> Dictionary()

另外,这个

while ((line =  streamReader.ReadLine()) !=null)

似乎有点狡猾。您还要在循环中返回dictionary。让我们试试:

line = streamReader.Readline();
while (line !=null)
{
   string[] columns = line.Split(','); 
   dictionary.Add(columns[0], columns[1]);
   line = streamReader.Readline();
}
return dictionary;  

所有这一切,在Web方法中返回一个实际的字典对象可能没有多大意义。你真正想要的是一个XML序列化的字典或列表。有关详细信息,请参见此处:https://www.google.com/search?q=return+dictionary+in+web+method