你可以通过 WCF 服务传递 Func<T,bool> 吗?

17

Func是一个可序列化的类,但是当我尝试通过服务将其作为参数传递时。系统告诉我它“不是已知类型”。我尝试了这里提供的解决方案,但都没有成功。

非常感谢……

2个回答

11

不行,基本上是不行的。你也不能传递一个Expression,因为它涉及到MemberInfo节点。最好的方法是使用谓词的字符串表示形式。


9

2
这真的很可怕。表达式对于应用程序代码非常有用,但是对于服务代码来说存在一些严重的安全隐患。 - Michael Meadows
1
是的,但我可以想象一种“Linq to the Cloud”项目,您可以将“where”子句传递给服务,它返回符合该子句的前100行。 - Matt Hamilton
1
对于这种情况,也许 Astoria 所做的包装类型是可行的方式... - Marc Gravell
当然。我猜这取决于你想做什么。据我所知,Astoria非常注重“单表” - 例如,传递一个查找Order.Customer.Address.State == "CA"的表达式可能会很困难。 - Matt Hamilton
我正在尝试做你提到的“where”场景。 - KevDog

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接