我有一个看起来像这样的网络服务
[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;
}
我有一个客户端软件,希望使用此方法将数据发送到Web服务
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[]'
有谁知道我做错了什么?
答案 0 :(得分:2)
看起来客户端的引用包含Record []而不是List<Record>
。您可以通过调用List<Record>
上的.ToArray方法来解决此问题。
importService.ImportData(myRecords.ToArray());
我也对在代码中使用Record而在错误消息中使用BVRRecord感到困惑。您是在更改解决方案中的类型名称还是实际上有两种不同的类型?如果是后者,您还需要在调用ImportData之前转换为BVRRecord类型。