¿Hay una manera de deserializar expresiones en C#, me gustaría para almacenar expresiones en una base de datos y cargarlos en tiempo de ejecución.serializar y deserializar expresión Árboles en C#
Respuesta
continué el trabajo en la biblioteca que fue mencionada por Serializing and Deserializing Expression Trees in C#
Parece que el proyecto fue abandonado (2008) pero trabajé en eso 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.
+1 para encontrar una solución de trabajo. Intenté usar la biblioteca original en MSDN y no se pudo deserializar un simple nodo de expresión binaria. Tu proyecto funciona genial ¡Gracias! –
¿Es proyecto en Nuget? –
@MohammadDayyan, Microsoft ha sido indeciso e inconsistente en su herramienta de administración de paquetes. A veces, ASP.Los paquetes NET CORE se pueden instalar con Nuget, en otros casos, p. un controlador MongoDB no estará disponible a través de NuGet. Sin embargo, al menos Microsoft tenía la idea de permitirle a NPM administrar paquetes. Es más probable que ponga esto en NPM –
No está lleno; sin embargo, la muestra Dynamic LINQ puede ayudar un poco. Ciertamente, puede serializar una expresión en una cadena (hasta cierto punto, los genéricos parecen un poco confusos), pero no hay un analizador incorporado.
No puedo averiguar cómo serializar una expresión en una cadena utilizando la muestra, solo la otra dirección, para tomar como cadena y crear un árbol de expresión. ¿A qué método llamo? –
Hay un proyecto en GitHub/Nuget llamada MetaLinq que tiene como objetivo facilitar el trabajo con árboles expresión más fácil.
Convierte entre las expresiones normales y 'EditableExpressions' que son mutable y totalmente Serializable, por lo que se puede utilizar con JSON, XML, etc. Binary
También compruebe esta blog post para obtener más información.
Otra opción es el proyecto Expression Tree Serialization en code.msdn.com - parece ser más de lo que se necesita aquí?
UPD: Ahora http://archive.msdn.microsoft.com/exprserialization
El árbol de expresiones El código de serialización se elimina de la galería de códigos http://code.msdn.microsoft.com/exprserialization, ¿hay alguna idea de dónde se mueve o de mejores alternativas? –
@Kiran: ¿Qué quieres decir? La descarga del código todavía está allí; mira la pestaña de descargas en la parte superior de la página. –
Sí, es ahora, probablemente algo temporal, la página estaba arrojando un error de proyecto no encontrado ayer cuando probé el enlace de arriba. Veo el proyecto y lo descargo ahora. ¡¡¡Gracias!!! –
WCF RIA Services permite para serializar IQuerayble<T>
Creo que esto es más relevante: http://www.silverlightshow.net/items/WCF-RIA-Services-Part-2-Querying-Data.aspx –
echar un vistazo a mi nueva biblioteca Serialize.Linq. Serializa expresiones linq a json, xml y binary.
¿ha usado esto antes? ¿cómo fue tu experiencia/encontrar alguna limitación? –
utilicé una versión similar en mi último proyecto. funciona bien – esskar
¿Por qué escribirías algo que sangra las líneas entre niveles peor? Está promoviendo la exposición de objetos de dominio DAL al BAL ... a menos que su biblioteca de alguna manera convierta de manera automática los DTO (y las consultas en su contra) en objetos de dominio/consultas. No veo nada en los documentos que indique tal comportamiento. –
Estaba trabajando en un proyecto para serializar expresiones. Está bien y puedes usarlo. http://www.codeproject.com/Articles/851187/ServicePredicateBuilder-for-creating-Serializable
- 1. jQuery serializar y deserializar
- 2. ¿Es posible serializar y deserializar una clase en C++?
- 3. Serializar y deserializar una matriz en javascript
- 4. Serializar/Deserializar a una cadena C#
- 5. ¿Cómo serializar y deserializar objetos Javascript?
- 6. WCF: serializar y deserializar colecciones genéricas
- 7. ¿Cómo serializar/deserializar un hashmap?
- 8. cómo serializar/deserializar arrayList (Objeto)
- 9. Variable local y árboles de expresión
- 10. Construyendo árboles de expresión
- 11. Convertir árboles de expresión
- 12. Cómo serializar/deserializar un C# WCF DataContract a/desde XML
- 13. ¿Los árboles de expresión LINQ son árboles apropiados?
- 14. Serializar/deserializar objeto-gráfico PHP a JSON
- 15. Json.net serializar/deserializar los tipos derivados?
- 16. ¿Cómo serializar/deserializar un objeto SimpleXML?
- 17. Cómo serializar/deserializar clases simples a XML y volver
- 18. La forma más rápida de serializar y deserializar objetos .NET
- 19. C# Árboles binarios y diccionarios
- 20. Aprendizaje de árboles de expresión en LINQ
- 21. Asignación en árboles de expresión .NET 3.5
- 22. C# 4.0: Árboles de expresión frente a CodeDom
- 23. Heurística para "esto" y cierres ¿está bien? (árboles de expresión)
- 24. Serializar doble y flotar con C
- 25. Renombrar campos y luego deserializar en C#
- 26. Unidad de árboles de expresión Pruebas
- 27. ¿Quizás la mónada usa árboles de expresión?
- 28. Uso práctico de árboles de expresión
- 29. Mejores prácticas para serializar/deserializar de Java a XML
- 30. árboles N-arios en C
¿qué tipo de expresiones? Regex? –
Asumiría expresiones de tipo System.Linq.Expression, dado los "árboles". –
puede usar http://www.codeproject.com/Articles/851187/ServicePredicateBuilder-for-creating-Serializable –