¿Hay alguna manera de deserializar expresiones en C #? Me gustaría almacenar expresiones en una base de datos y cargarlas en tiempo de ejecución.
¿Hay alguna manera de deserializar expresiones en C #? Me gustaría almacenar expresiones en una base de datos y cargarlas en tiempo de ejecución.
Respuestas:
Continué trabajando en la biblioteca que se mencionó en Serializar y deserializar árboles de expresión en C #
Parece que el proyecto fue abandonado (2008) pero trabajé un poco en él y ahora funciona con .NET 4.0 y Silverlight. Hice correcciones de errores en su código y también lo hice más independiente de DAL.
Otra opción es el proyecto Expression Tree Serialization en code.msdn.com: ¿parece que hay más de lo que se necesita aquí?
UPD: ahora http://archive.msdn.microsoft.com/exprserialization
Hay un proyecto en GitHub / Nuget llamado MetaLinq que tiene como objetivo facilitar el trabajo con los árboles de expresión.
Convierte entre expresiones normales y 'expresiones editables' que son mutables y totalmente serializables, por lo que se puede usar con Json, Xml, Binary, etc.
También consulte esta publicación de blog para obtener más información.
eche un vistazo a mi nueva biblioteca Serialize.Linq . Serializa expresiones linq en json, xml y binary.
No en su totalidad; sin embargo, el ejemplo de Dynamic LINQ puede ayudar un poco. Ciertamente, puede serializar una expresión en una cadena (hasta cierto punto, los genéricos parecen un poco chiflados), pero no hay un analizador incorporado.
WCF RIA Services permite la serialización IQuerayble<T>
Estaba trabajando en un proyecto para serializar expresiones. Está bien y puedes usarlo. http://www.codeproject.com/Articles/851187/ServicePredicateBuilder-for-creating-Serializable