【问题标题】:Opinions on Expression Tree Serialization Library from CodePlex?CodePlex 对表达式树序列化库的看法?
【发布时间】:2010-10-31 00:19:01
【问题描述】:

有人试过这个代码库并对此有意见吗? http://code.msdn.microsoft.com/exprserialization

10 倍

【问题讨论】:

标签: c# linq wcf entity-framework serialization


【解决方案1】:

看起来该项目已被放弃,但我做了一些工作,现在它可以与 .NET 4.0 和 Silverlight 一起使用。我对他们的代码进行了错误修复,并使其更加独立于 DAL。

http://expressiontree.codeplex.com/

【讨论】:

  • 我还刚刚为 .NET 4.0 编写了一个 LINQ 提供程序,它从(看似不活跃的)IQToolkit 项目中汲取灵感。原因是我必须为工作中的项目构建自己的 LINQ-to-T-SQL 提供程序,启用 ADO.NET 2.0 DAL 进行 LINQ 查询。 linqprovider.codeplex.com
【解决方案2】:

我发现它无法序列化自定义闭包,我目前正在编写自己的二进制序列化程序。话虽如此,.net 4.0 中不包含表达式树序列化这一事实非常令人失望。

【讨论】:

    【解决方案3】:

    我正在使用这个库来序列化/反序列化“linq to object”查询。图书馆在这方面做得很好。有一些问题,但由于图书馆的开源,我能够修复它们。不再支持的问题。

    【讨论】:

    • 我猜这是因为它引用了带有 DataContext 而不是 ObjectContext 的 LINQ To SQL(在实体框架的实现中)。无论如何,我们通过创建动态查询解决了这个问题,客户端开发人员可以创建“查询”对象,将“条件”对象添加到它的 Query.Conditions 集合等,这与它在其他几个库(例如 webdev)中实现的方式非常相似谢谢你的分享。塔米尔。
    【解决方案4】:

    这个库的安全方面对我来说真的很可怕。这几乎就像执行来自配置或通过请求的任意代码。

    【讨论】:

    • 是的,但是通过仔细的系统架构,您不会遇到任何类似的问题,并且表达式序列化的好处很多,例如能够创建自定义谓词逻辑表达式并存储它们供以后使用,灵活的 GUI 等。
    【解决方案5】:

    它用于 ADO.NET 数据服务的客户端代理,用于针对 RESTful 服务执行 LINQ 查询,并在服务上序列化和执行该查询。根据我的经验,效果很好。

    如果您想测试它的实用性,请尝试ADO.NET Data Service

    【讨论】:

    • 我认为我们说的不是同一件事。表达式树序列化项目不使用 WCF 服务。
    • 我们确实在谈论同一件事。这是表达式树序列化的应用程序 - 序列化的表达式树用于创建用于 RESTful 数据检索的 URL。我想您可能希望看到表达式树序列化的实际应用。 (希望你不是为了序列化表达式树而序列化它们:))
    • MS 为 ExpressionTreeSerialization 项目提供的示例未显示任何 WCF 服务。他们获取 IQueryable 对象,将其序列化为新对象,发送到服务器 - 无论如何(WS,WCF 等)并将它们反序列化回 IQueryable,执行查询并将 IEnumerable 返回给客户端。我认为这与 Astoria 项目不同
    • 嗯,您确实需要 WCF 服务,但不需要 RESTful,这是为了反映服务中的实体。无论如何,ADO.NET Data Services(Astoria) 和 ExpressionTreeSerialization 之间没有任何联系。最后,这个库对我没有帮助,因为它不支持 EF,只支持 LINQ2SQL。还是谢谢!
    猜你喜欢
    • 2014-06-08
    • 1970-01-01
    • 2010-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多