95

有没有办法在 C# 中反序列化表达式,我想将表达式存储在数据库中并在运行时加载它们。

4

7 回答 7

49

我继续在 C# 中序列化和反序列化表达式树提到的库上工作

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

http://expressiontree.codeplex.com/

于 2011-06-14T22:15:29.610 回答
16

在 GitHub/Nuget 上有一个名为MetaLinq的项目,旨在让使用表达式树更容易。

它在普通表达式和可变且完全可序列化的“EditableExpressions”之间进行转换,因此可以与 Json、Xml、Binary 等一起使用。

另请查看此博客文章以获取更多信息。

于 2008-10-20T15:11:21.837 回答
14

其他选项是 code.msdn.com 上的Expression Tree Serialization项目 - 这里似乎更需要什么?

UPD:现在http://archive.msdn.microsoft.com/exprserialization

于 2009-09-28T09:57:31.370 回答
12

看看我的新库Serialize.Linq。它将 linq 表达式序列化为 json、xml 和二进制。

于 2012-09-22T10:03:51.987 回答
3

不完整;但是,Dynamic LINQ示例可能会有所帮助。您当然可以将表达式序列化为字符串(在某种程度上 - 泛型看起来有点古怪),但没有内置的解析器。

于 2008-10-20T10:16:29.980 回答
2

WCF RIA 服务允许序列化IQuerayble<T>

WCF RIA 服务第 3 部分 - 更新数据

于 2010-09-10T07:27:17.447 回答
1

I was working on a project for serializing expressions. It's OK and you can use it. http://www.codeproject.com/Articles/851187/ServicePredicateBuilder-for-creating-Serializable

于 2015-08-15T10:17:12.537 回答