В сети servce я говорю
public List<Customer> GetCustomers()
{
PR1Entities dc = new PR1Entities();
var q = (from x in dc.Customers
select x).ToList();
return q;
}
(клиент является объектом объекта),
Затем я генерирую прокси, когда я добавляю сервис.. и в reference.cd это говорит
public wcf1.ServiceReference1.Customer[] GetCustomers() {
return base.Channel.GetCustomers();
}
ПОЧЕМУ ЭТО - МАССИВ AN? Я попросил Список.
помощь.
Щелкните правой кнопкой мыши ссылку на службу и выберите "Настроить ссылку на службу".
В раскрывающемся списке Тип коллекции выберите тип System.Collections.Generic.List.
Я считаю, что по умолчанию используется Array, потому что он наиболее совместим при сериализации. Если вы используете службу из чего-то, что распознает что-то более сложное, вы можете настроить, как я уже упоминал.
Щелкните правой кнопкой мыши ссылку на службу -> Настроить ссылку службы -> В разделе "Тип данных" измените "Тип сбора" на System.Collections .ArrayList
или любой другой тип, в который вы хотите десериализовать массив.
Ваш список сериализуется в массив (на стороне сервера). Вы выбираете, как его десериализовать (на стороне клиента).
Потому что именно так сериализуется список. Ваш класс Customer
на стороне клиента был сгенерирован из метаданных службы, которые эффективно описывают, как он сериализуется, а не как он был изначально определен. Если ваш исходный класс Customer
доступен, вы можете указать его повторно использовать в коде клиента при создании ссылки на службу, и тогда он будет представлен как List
.