我想知道我是否可以使用Func
参数公开Web方法!
[WebMethod]
public List<Entity> ReadEntities(Func<Entity, bool> predicate)
{
using (var entities = new GwEntities())
return entities.Entities.Where(predicate).ToList();
}
当我尝试更新Web引用时,Visual Studio中有一个例外:
System.Func [GwModel.Entity,SystemBoolean] caonnot被序列化,因为它没有无参数构造函数
请解决任何问题!
答案 0 :(得分:4)
您不能像这样序列化自己的代码。序列化器应该从哪里开始,哪里停止?它是否只传输方法的代码和从方法中调用的所有程序集? LINQ to objects做了类似的事情。你应该看一下Expressions。这些可以通过电线进行序列化。
答案 1 :(得分:2)
没有办法。如果您将func参数视为对调用方的某些代码的引用,您希望服务器如何能够看到该代码?
答案 2 :(得分:1)
我认为您可能无法使用传统的asp.net Web服务实现客户端回调。你可以为此选择WCF。 KickStart