2015-01-16 3 views
-2

Я использую этот пример 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; 

    } 

Я не знаю, как реализовать на стороне клиента, используя код, указанный выше. Сервер возвращает список, и я хочу сохранить локальный список на клиенте.

+0

Ваш опубликованный код абсолютно не связан с возвратом «List » из службы WCF клиенту. Пожалуйста, разместите ** соответствующий ** код. – Tim

+0

Код на картинке на стороне клиента. Я создаю новый список, который будет заполнен объектами человека, которые будут иметь атрибуты как id, имя, адрес, зарплату, страну. Объекты человека будут отправляться сервером. – g90

+1

Итак, почему вы публикуете нерелевантный код? Я думаю, вы должны переосмыслить и переформулировать свой вопрос, потому что теперь это беспорядок. Или, по крайней мере, посмотрите [полный пример] (http://msdn.microsoft.com/en-us/library/vstudio/ms734712 (v = vs.100) .aspx), чтобы получить представление о том, как стороны сервера клиента должны быть сделал. Пока я голосую, чтобы закрыть, потому что вопрос неясен. – Reniuz

ответ

0

Я думаю, что вам лучше всего пройти через полный сквозной пример, который можно найти здесь: http://msdn.microsoft.com/en-us/library/bb386386.aspx, который поможет вам ускориться с WCF.

Однако, как начало перехода ... Я предполагаю, что в вашем интерфейсе вы украсили свой метод GetData с атрибутом [OperationContract]?

Затем на клиенте вам необходимо обратиться к службе WCF. При добавлении услуги вы должны нажать кнопку Advanced в левом нижнем углу диалогового окна. Измените Тип коллекции выпадающий список с 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 классе не очень хорошо и должна быть пересмотрена.

+0

Я уже пробовал это. Я получаю эту ошибку: 'Невозможно неявно преобразовать тип 'WcfServiceLibrary1.Person []' to 'System.Collections.Generic.List '' – g90

+0

Это потому, что, когда вы добавили ссылку, вы можете сказать, что хотите коллекции, которые будут возвращены как общий список. По умолчанию они являются массивами. Я обновлю ответ. – Belogix

+0

Черт, я читал о добавлении ссылки на список где-то, когда я искал в Интернете. – g90

Смежные вопросы