Проблема с отправкой веб-сервису списка объектов.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.

Другие вопросы по тегам