Сериализация и десериализация деревьев выражений в C # - PullRequest
87 голосов
/ 20 октября 2008

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

Ответы [ 7 ]

46 голосов
/ 15 июня 2011

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

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

http://expressiontree.codeplex.com/

14 голосов
/ 28 сентября 2009

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

UPD: сейчас http://archive.msdn.microsoft.com/exprserialization

13 голосов
/ 20 октября 2008

На GitHub / Nuget существует проект под названием MetaLinq , цель которого - упростить работу с выражениями.

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

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

8 голосов
/ 22 сентября 2012

взгляните на мою новую библиотеку Serialize.Linq . Он сериализует выражения linq в json, xml и binary.

2 голосов
/ 10 сентября 2010

WCF RIA Services позволяет сериализовать IQuerayble<T>

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

2 голосов
/ 20 октября 2008

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

1 голос
/ 15 августа 2015

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

...