如何使用此示例实现客户端

时间:2015-01-16 09:12:06

标签: c# wcf

我正在使用此Return list in WCF示例,但我无法正确实现客户端代码。该示例有效。我希望在客户端传输列表。

到目前为止我的代码:

List<Person> aPerson = new List<Person>()
Person y = new Person()'
aPerson.Add(y.id, y.name, y.adress, y.salary, y.country)

这是服务器:

[DataContract]
public class Person
{
    public string Id;
    public string name;
    public string address;
    public string salary;
    public string country;

    public Person()
    { }

    public Person(string _id, string _name, string _address, string _salary, string _country)
    {
        Id = _id;
        name = _name;
        address = _address;
        salary = _salary;
        country = _country;
    }

    [DataMember]
    public string Idps
    {
        get { return Id; }
        set { Id = value; }
    }

    [DataMember]
    public string nameps
    {
        get { return name; }
        set { name = value; }
    }

    [DataMember]
    public string addressps
    {
        get { return address; }
        set { address = value; }
    }

    [DataMember]
    public string salaryps
    {
        get { return salary; }
        set { salary = value; }
    }

    [DataMember]
    public string countryps
    {
        get { return country; }
        set { country = value; }
    }

}


public List <Person> GetData(string Id)
    {

        //Create a List of Person objects
        List<Person>employeelist =new List<Person>();

        employeelist.Add(new Person("10", "name", "myAdress", "1000", "myCountry");

        }

        //Return the list that contains Person objects
        return employeelist;

    }

我不知道如何使用上面的代码实现客户端。服务器返回列表,我想将列表本地存储在客户端。

1 个答案:

答案 0 :(得分:0)

我认为你最好通过一个完整的端到端示例,如下所示:http://msdn.microsoft.com/en-us/library/bb386386.aspx这可以帮助你加快WCF的速度。

但是,作为一个快速启动...我假设您在界面中使用GetData属性修饰了方法[OperationContract]

然后在客户端上,您需要引用WCF服务。添加服务时,您应单击对话框左下角的高级按钮。将收集类型下拉列表从System.Array更改为 System.Collections.Generic.List

最后,您的客户端应该可以使用以下代码调用该服务:

public void SampleClientCode()
{
    using (var client = new ServiceReference1.Service1Client())
    {
        List<Person> results = client.GetData("12345");

        // Now do something with the data... Example
        string firstPersonsName = results.First().nameps;
    }
}

注意:您的Person课程中的属性命名惯例不是很好,应该进行修订。