如何调用wcf服务方法?

时间:2013-05-23 09:01:11

标签: 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";
        }

现在我的问题是如何从客户端代码中调用此方法。这意味着首先我必须构建调查清单。我该如何构建这个列表。

string reply = client.PostAllSurveList(How can I construct this List?);

为了您的信息,我正在用C#编写客户端代码。

先谢谢。

4 个答案:

答案 0 :(得分:3)

var list = new List<Survey>();    
string reply = client.PostAllSurveList(list);

确实需要确保你知道如何拼写调查,因为你在6行代码中有3种不同的拼写。代码是书面语言,如果大声说出它有点类似,它就不起作用。

修改 确保在生成客户端时,选择“列表”作为任何集合的选项。您似乎选择了数组,这意味着您的函数现在在客户端采用数组:

var list = new List<Survey>();    
string reply = client.PostAllSurveList(list.ToArray());

答案 1 :(得分:1)

创建调查项目并将其添加到列表中,将列表作为参数传递:

Survey survey1 = new Survey();

survey1.property1= value;
survey1.property2= value;

Survey survey2 = new Survey();

survey2.property1= value;
survey2.property2= value;

List<Survey> listSurvey = new List<Survey>();
listSurvey.add(survey1);
listSurvey.add(survey2);

string reply = client.PostAllSurveList(listSurvey);

答案 2 :(得分:1)

像这样的Creare List并提供:

var list = new List<Survey>();
string reply = client.PostAllSurveList(list);

编辑: 更新服务引用到ObservableCollection enter image description here

答案 3 :(得分:0)

尝试:

var list = new List<Survey>();
string reply = client.PostAllSurveList(list);

或使用Collection Initializer

string reply = client.PostAllSurveList(new List<Survey> { });

虽然list应填充在业务逻辑的其他位置,但除非ConstructDbServeyList直接操作方法中的变量。

您可以使用.Add()方法添加到列表中。例如:

list.Add(new Survey() { Property = "Property"; });