如何解决在WCF中将Lambda表达式条件作为参数传递
我的ASP.NET MVC应用程序具有多种条件,可以针对不同的情况从数据库中获取记录。为了在WCF中实现相同功能,针对不同情况使用了多种功能。我尝试实现以下代码,
ASP.NET MVC代码:
IEnumerable<WCF.UserApplicationDetails> Search_UserApplicationDetails =
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();
}
它在同一应用程序中正常运行,但是在WCF中,我收到此错误:
类型为'System.DelegateSerializationHolder + DelegateEntry'的数据协定名称为'DelegateSerializationHolder.DelegateEntry:http://schemas.datacontract.org/2004/07/System'是不可取的。如果您正在使用DataContractSerializer或将任何静态未知的类型添加到已知类型的列表中,请考虑使用DataContractResolver-例如,通过使用KnownTypeAttribute属性或将它们添加到传递给序列化程序的已知类型的列表中。
描述:当前Web请求的执行期间发生未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中起源的更多信息。
有没有其他选择可以实现这一目标?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。