Проблема с отправкой веб-сервису списка объектов.Net
У меня есть веб-сервис, который выглядит так
[WebMethod]
public int Import(System.Collections.Generic.List<Record> importRecords)
{
int count = 0;
if (importRecords != null && importRecords.Count > 1)
{
DataLayer datalayer = new DataLayer();
foreach (Record brec in importRecords)
if (rec != null)
{
datalayer.InsertUpdateRecord(rec);
count++;
}
}
return count;
}
И у меня есть клиентское программное обеспечение, которое хочет отправлять данные в веб-сервис, используя этот метод
ImportService.BVRImportService importService = new ImportService.ImportService();
ImportService.Record myRecord = new ImportService.Record();
myRecord.FirstName = "Adam";
System.Collections.Generic.List<ImportService.Record> myRecords =
new List<ImportService.Record>();
myRecords.Add(myRecord);
importService.ImportData(myRecords);
Я продолжаю получать это сообщение, когда пытаюсь скомпилировать клиентское программное обеспечение.
Error 1 The best overloaded method match for 'ImportTask.ImportService.ImportService.ImportData(ImportTask.ImportService.Record[])' has some invalid arguments
Error 2 Argument '1': cannot convert from 'System.Collections.Generic.List<ImportTask.ImportService.Record>' to 'ImportTask.ImportService.BVRRecord[]'
Кто-нибудь знает, что я делаю не так?
1 ответ
Решение
Похоже, что ссылка на клиенте содержит Record[] вместо List<Record>
, Вы можете исправить это, вызвав метод.ToArray для List<Record>
,
importService.ImportData(myRecords.ToArray());
Меня также смущает использование Record в коде, но BVRRecord в сообщениях об ошибках. Вы меняете имена типов в своем решении или на самом деле есть 2 разных типа? Если это последнее, вам также нужно преобразовать в тип BVRRecord перед вызовом ImportData.