首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在foreach上获取NotImplementedException

在foreach上获取NotImplementedException
EN

Stack Overflow用户
提问于 2013-12-24 19:20:51
回答 1查看 154关注 0票数 0

尝试从服务获取数据并将其绑定到网格

我正在获取localitem中的数据,错误发生在"foreach“行

任何帮助都将不胜感激

代码语言:javascript
复制
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

代码语言:javascript
复制
public partial class PersonalInformation : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged , System.Collections.IEnumerable 
EN

回答 1

Stack Overflow用户

发布于 2013-12-24 19:25:41

GetLocalInfoForPerson返回的具体类型是什么?它是否正确地实现了IEnumerable

根据你的代码样本,很难说哪里可能是错误的,因为我们不知道涉及的类型。但是,您可以将localItem键入为IEnumerable,如果这是一个自定义实现,则可能有人忘记了实现非泛型GetEnumerator方法。

如果将localItem的声明更改为:

代码语言:javascript
复制
IEnumerable<PersonalIDCheckerMvCKendo.Models.PersonInfo> localItem = serviceclient.GetLocalInfoForPerson(personalNO);

这将意味着IEnumerable.GetEnumerator没有实现(即。抛出NotImplementedException),而IEnumerable<T>.GetEnumerator实际上是实现的。也可能是这两种方法都没有实现。在GetLocalInfoForPerson返回的类型的代码中查找它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20759999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档