如何在linq中返回序列化的List或Ilist?

时间:2015-03-05 11:11:14

标签: c# linq wcf list ilist

我正在使用visual studio开发WCF Web服务,我正在使用LINQ从数据库进行查询。 问题是,当函数返回List of Ilist时,浏览器会显示错误

  

该网页不可用

。 这是我在界面中的代码:

[OperationContract, WebGet(ResponseFormat=WebMessageFormat.Json)]
    IList<Person_type> GetPeopleTypes();

这是函数的实现代码:

public IList<Person_type> GetPeopleTypes()
    {

        IList<Person_type> result=new List<Person_type> (); 
        IList<Person_type> pts = db.Person_type.ToList();
        foreach (Person_type pt in pts)
            result.Add(pt) ;   

        return result;
    }

有什么问题?

1 个答案:

答案 0 :(得分:0)

从WCF服务返回接口类型并不是一个好主意(因为序列化问题https://stackoverflow.com/a/6732883/4585429)。

尝试重写这样的方法:

public List<Person_type> GetPeopleTypes()
{
    return db.Person_type.ToList();
}

或者像这样:

public Person_type[] GetPeopleTypes()
{
    return db.Person_type.ToArray();
}