C# 在WCF中将Lambda表达式条件作为参数传递

C# 在WCF中将Lambda表达式条件作为参数传递,c#,asp.net-mvc,wcf,lambda,C#,Asp.net Mvc,Wcf,Lambda,我的ASP.NET MVC应用程序有多个条件可以从数据库中获取不同场景的记录。以便在WCF中实现相同的功能,并针对不同的条件提供多个功能。我试图实现下面的代码 ASP.NET MVC代码: IEnumerable<WCF.UserApplicationDetails> Search_UserApplicationDetails = shareGatewayClient.GetUserApplicationDetailsByCondition(x => (x.F

我的ASP.NET MVC应用程序有多个条件可以从数据库中获取不同场景的记录。以便在WCF中实现相同的功能,并针对不同的条件提供多个功能。我试图实现下面的代码

ASP.NET MVC代码:

IEnumerable<WCF.UserApplicationDetails> Search_UserApplicationDetails = 
        shareGatewayClient.GetUserApplicationDetailsByCondition(x => (x.FirstName == Name)).ToList();
IEnumerable搜索\u用户应用程序详细信息=
shareGatewayClient.GetUserApplicationDetailsByCondition(x=>(x.FirstName==Name)).ToList();
WCF代码-基本http绑定端点:

public IEnumerable<UserApplicationDetails> GetUserApplicationDetailsByCondition(Func<UserApplicationDetails, bool>  condition)
{
    DBContext databaseEntities = new DBContext();
    return databaseEntities.UserApplicationDetails.Where(condition).ToList();
}
public IEnumerable GetUserApplicationDetailsByCondition(Func条件)
{
DBContext databaseEntities=新的DBContext();
返回databaseEntities.UserApplicationDetails.Where(condition.ToList();
}
它在同一个应用程序中正常工作,但在WCF中我遇到了以下错误:

不应键入数据协定名称为“DelegateSerializationHolder.DelegateEntry:的“System.DelegateSerializationHolder+DelegateEntry”。如果您正在使用DATACONTROTSCORALIZER或将未知类型的任何类型添加到已知类型的列表中,请考虑使用DATACONTracTracver,例如,使用NoNyType属性或将它们添加到传递给序列化程序的已知类型的列表中。 描述:执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源


是否有其他方法可以实现此目标?

“它与WCF合作”-请解释。。。您不能在WCF调用中使用ref、out、delegate或任何其他此类属性。这些被转换成soap协议(或类似协议)并通过网络发送。@MichaelRandall为一个打字错误道歉“它在同一个应用程序中工作得很好”。有什么方法可以动态实现这一点吗?DataContractSerializer不适合序列化委托,DataContractSerializer用于数据。静态未知类型不能直接序列化。