У меня возникли проблемы с передачей списка внутри объекта в службе WCF. У меня есть этот класс:Не удается передать список: Основное соединение было закрыто
[DataContract]
public class Field
{
/*Necessary Information*/
[DataMember]
public int ID { get; set; }
[DataMember]
public String Picture { get; set; }
[DataMember]
public double TypicalAge { get; set; }
[DataMember]
public List<Report> ReportHistory { get; set; }
}
[DataContract]
public class Report
{
[DataMember]
public long ID { get; set; }
[DataMember]
public ReportTypes Type { get; set; }
[DataMember]
public int FieldID { get; set; }
[DataMember]
public String Head { get; set; }
[DataMember]
public String Body { get; set; }
[DataMember]
public DateTime TimeStamp { get; set; }
}
Когда список отчетов пуст или размер 1, все работает. Когда размер списка больше 1, я получаю эту ошибку:
The underlying connection was closed: The connection was closed unexpectedly..
Код на сервере:
public List<Field> GetFieldsByIDs(List<int> listOfIDs)
{
var result = new List<Field>();
using (var context = new FieldBookEntities())
{
var fields = context.FieldEntities.Where(x => listOfIDs.Contains(x.ID)).Select(FieldEntityToField).ToList();
for (int i = 0; i < listOfIDs.Count; i++)
{
var field = fields.FirstOrDefault(x => x.ID == listOfIDs.ElementAt(i));
if (field != null)
result.Add(field);
}
}
return result;
}
Код в клиенте:
client = new FieldServiceClient();
var fieldsByIDs = client.GetFieldsByIDs(new int[] { 1, 2 });
Интерфейс:
public interface IFieldService
{
[OperationContract]
bool CheckConnection();
[OperationContract]
List<Field> GetFieldsByIDs(List<int> listOfIDs); //max 30 fields
}
Что мне делать?
Показать код, который содержит ошибки. – Ric
отредактировал мой вопрос – BestArmy
Почему вы передаете 'int []', а не 'List' –
Ric