这些有什么不同?

时间:2013-05-23 09:34:12

标签: c# wcf

我在wcf服务

中有这样的方法
public string PostAllSurveList(List<Survey> surveyList)
{
    var surveyDbList = ConstructDbServeyList(surveyList);
    foreach (var survey in surveyDbList)
    {
        _db.surveys.Add(survey);
    }
    _db.SaveChanges();
    return "Successfully Saved";
}

当我通过以下方式在C#中调用此方法时,它正常工作

var surveys = new Survey[]{new Survey{ Id = 1, ConsumerName = "atish"},};

string reply = client.PostAllSurveList(surveys);

但不按以下方式工作

var surveys = new List<Survey>{ new Survey { Id = 1, ConsumerName = "atish"}};

string reply = client.PostAllSurveList(surveys);

出现编译时错误。

我的问题是为什么会发生这种情况。

2 个答案:

答案 0 :(得分:5)

创建WCF服务引用时,您可以指定将用于集合的类型(与服务器端的声明方式无关)。在您的情况下,生成服务客户端以使用数组而不是列表。

您需要更改该服务参考配置。

答案 1 :(得分:3)

更改WCF引用在连接时使用的集合类型。这可以在创建或编辑引用时完成。为方便起见,请参阅随附的屏幕截图:

enter image description here