Сериализация и десериализация деревьев выражений в C#


есть ли способ десериализовать выражения в C#, я хотел бы хранить выражения в базе данных и загружать их во время выполнения.

7 85

7 ответов:

Я продолжил работу над библиотекой, которая была упомянута сериализация и десериализация деревьев выражений в C#

похоже, что проект был заброшен (2008), но я сделал некоторую работу над ним, и теперь он работает с .NET 4.0 и Silverlight. Я исправил ошибки в их коде, а также сделал его более независимым от DAL.

http://expressiontree.codeplex.com/

другой вариант-это Сериализация Дерева Выражений проект включен code.msdn.com -казалось бы, больше того, что здесь нужно?

UPD: теперь http://archive.msdn.microsoft.com/exprserialization

есть проект на GitHub / Nuget под названием MetaLinq это направлено на то, чтобы сделать работу с выражением tress более легким.

он преобразует между нормальными выражениями и "EditableExpressions", которые являются изменяемыми и полностью Сериализуемыми, поэтому могут использоваться с Json, Xml, двоичными и т. д.

также проверьте это блоге для получения дополнительной информации.

посмотри на мою новую библиотеку сериализовать.Linq. Он сериализует выражения linq в json, xml и двоичный код.

не в полном объеме, однако Dynamic LINQ образец может немного помочь. Вы можете, конечно, сериализовать выражение в строку (до некоторой степени - дженерики выглядят немного странными), но нет встроенного парсера.

службы WCF RIA позволяют сериализовать IQuerayble<T>

WCF RIA Services Часть 3-Обновление данных

Я работал над проектом для сериализации выражений. Это нормально и вы можете использовать его. http://www.codeproject.com/Articles/851187/ServicePredicateBuilder-for-creating-Serializable