尝试从服务获取数据并将其绑定到网格
我在localitem中获取数据,错误发生在“foreach”行
任何帮助将不胜感激
private IEnumerable<PersonalIDCheckerMvCKendo.Models.PersonInfo> Getlocalinfo(string personalNO)
{
needsUpdate = false;
using (PersonalInfoServiceClient serviceclient = new PersonalInfoServiceClient())
{
List<PersonalIDCheckerMvCKendo.Models.PersonInfo> personInfo = new List<PersonalIDCheckerMvCKendo.Models.PersonInfo>();
try
{
IEnumerable localItem = serviceclient.GetLocalInfoForPerson(personalNO);
if (localItem != null)
{
foreach (PersonalIDCheckerMvCKendo.Models.PersonInfo dalitem in localItem)
{
personInfo.Add(new PersonalIDCheckerMvCKendo.Models.PersonInfo
{
DocumentSerie = dalitem.DocumentSerie,
DocumentNumber = dalitem.DocumentNumber,
DocumentType = dalitem.DocumentType,
DocumentIssuer = dalitem.DocumentIssuer,
DocumentValidDate = dalitem.DocumentValidDate
});
}
}
return personInfo.ToArray();
}
catch
{
throw;
}
finally
{
serviceclient.Close();
}
}
}
编辑:
GetLocalInfoForPerson的类型为PersonalInformation
public partial class PersonalInformation : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged , System.Collections.IEnumerable
答案 0 :(得分:1)
GetLocalInfoForPerson
返回什么样的具体类型?它是否正确实施IEnumerable
?
根据您的代码示例,很难说出可能出现的问题,因为我们不知道所涉及的类型。但是,您将localItem
键入IEnumerable
,如果这是自定义实现,则有人可能忘记实现非通用GetEnumerator
方法。
如果您将localItem
的声明更改为:
IEnumerable<PersonalIDCheckerMvCKendo.Models.PersonInfo> localItem = serviceclient.GetLocalInfoForPerson(personalNO);
?
这意味着IEnumerable.GetEnumerator
未实现(即抛出NotImplementedException),而IEnumerable<T>.GetEnumerator
实际上已实现。也可能是两种方法都没有实现。在代码中查找从GetLocalInfoForPerson
返回的类型。