Чи є спосіб десериалізувати вирази в C #, я хотів би зберігати вирази в базі даних і завантажувати їх під час виконання.
Чи є спосіб десериалізувати вирази в C #, я хотів би зберігати вирази в базі даних і завантажувати їх під час виконання.
Відповіді:
Я продовжив роботу над бібліотекою, про яку згадували серіалізація та десеріалізація дерев виразів на C #
Схоже, від проекту відмовились (2008 р.), Але я трохи попрацював над ним, і зараз він працює з .NET 4.0 та Silverlight. Я зробив виправлення помилок у їх коді, а також зробив його більш незалежним від DAL.
Інший варіант - серіалізація дерева виразів проект на code.msdn.com - здається, тут більше, ніж потрібно?
UPD: Тепер http://archive.msdn.microsoft.com/exprserialization
Існує проект на GitHub / Nuget під назвою MetaLinq, який має на меті полегшити роботу з експресією.
Він перетворює між звичайними виразами та "EditableExpressions", які можна змінювати та повністю серіалізувати, тому їх можна використовувати з Json, Xml, Binary тощо.
Також перегляньте цю публікацію в блозі для отримання додаткової інформації.
подивіться на мою нову бібліотеку Serialize.Linq . Він серіалізує вирази linq до json, xml та двійкових файлів.
Не в повному обсязі; однак зразок Dynamic LINQ може трохи допомогти. Ви, звичайно, можете серіалізувати вираз до рядка (певною мірою - узагальнюючі засоби виглядають дещо заплутаними), але вбудованого аналізатора немає.
Послуги WCF RIA дозволяють проводити серіалізацію IQuerayble<T>
Я працював над проектом для серіалізації виразів. Це нормально, і ви можете ним скористатися. http://www.codeproject.com/Articles/851187/ServicePredicateBuilder-for-creating-Serializable