Serialize.Linq在WCF代理层中不起作用

我使用Serialize.Linq发送并在WCF应用程序服务中的客户端和服务器之间接收Expression<Func>查询,因为Expression<Func>无法序列化

一切似乎都很好但是

当我添加引用此库到wcf代理层并添加服务器引用我的Web服务

构建我的项目时会遇到这样的错误

 ExpressionNodeOfNewExpressionQsd8_SODT' does not implement inherited abstract member 'Serialize.Linq.Nodes.ExpressionNode.ToExpression(Serialize.Linq.ExpressionContext)' ExpressionNodeOfTypeBinaryExpressionQsd8_SODT' does not implement inherited abstract member 'Serialize.Linq.Nodes.ExpressionNode.ToExpression(Serialize.Linq.ExpressionContext)' etc ... 

似乎WCF为这个库创建自动生成的代理类而不是使用主类,而我将参考Serialize.Linq程序集添加到代理项目但没有帮助解决我的问题

您可以非常简单地测试并显示此问题

像这样

  1. 创建Wcf服务应用程序并将参考Serialize.Linq添加到项目

     public interface IService1 { [OperationContract(Name = "GetByPredicate")] List Get(ExpressionNode expression); [OperationContract] List Get(); } public class Person { public int ID { get; set; } public string Name { get; set; } } public class Service1 : IService1 { private List _persons; public Service1() { var p = new List { new Person() {ID = 1, Name = "A"}, new Person() {ID = 2, Name = "B"}, new Person() {ID = 3, Name = "C"}, new Person() {ID = 4, Name = "D"}, new Person() {ID = 5, Name = "E"}, new Person() {ID = 6, Name = "F"}, new Person() {ID = 7, Name = "G"}, new Person() {ID = 8, Name = "H"} }; _persons = p; } public List Get(ExpressionNode expression) { var ex = expression.ToExpression<Func>().Compile(); return _persons.Where(ex).ToList(); } public List Get() { return _persons; } } 
  2. 创建类库项目并将参考Serialize.Linq添加到项目

  3. 在Wcf Service as Service上面添加此类库作为Wcf代理项目
  4. 现在建立项目,你可以看到错误! 🙁

有什么想法?!,如何在代理层中使用Serialize.Linq库?