尝试从服务获取数据并将其绑定到网格
我正在获取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 发布于 2013-12-24 19:25:41
GetLocalInfoForPerson返回的具体类型是什么?它是否正确地实现了IEnumerable?
根据你的代码样本,很难说哪里可能是错误的,因为我们不知道涉及的类型。但是,您可以将localItem键入为IEnumerable,如果这是一个自定义实现,则可能有人忘记了实现非泛型GetEnumerator方法。
如果将localItem的声明更改为:
IEnumerable<PersonalIDCheckerMvCKendo.Models.PersonInfo> localItem = serviceclient.GetLocalInfoForPerson(personalNO);?
这将意味着IEnumerable.GetEnumerator没有实现(即。抛出NotImplementedException),而IEnumerable<T>.GetEnumerator实际上是实现的。也可能是这两种方法都没有实现。在GetLocalInfoForPerson返回的类型的代码中查找它。
https://stackoverflow.com/questions/20759999
复制相似问题