C'è un modo per deserializzare le espressioni in C #, vorrei archiviare le espressioni in un database e caricarle in fase di esecuzione.
C'è un modo per deserializzare le espressioni in C #, vorrei archiviare le espressioni in un database e caricarle in fase di esecuzione.
Risposte:
Ho continuato a lavorare sulla libreria menzionata da Serializzazione e deserializzazione degli alberi delle espressioni in C #
Sembra che il progetto sia stato abbandonato (2008) ma ci ho lavorato sopra e ora funziona con .NET 4.0 e Silverlight. Ho apportato correzioni di bug al loro codice e l'ho anche reso più indipendente dal DAL.
Un'altra opzione è il progetto Expression Tree Serialization su code.msdn.com - sembrerebbe essere più ciò che è necessario qui?
UPD: ora http://archive.msdn.microsoft.com/exprserialization
C'è un progetto su GitHub / Nuget chiamato MetaLinq che mira a rendere più facile il lavoro con l'espressione tress.
Converte tra espressioni normali e "EditableExpressions" che sono modificabili e completamente serializzabili, quindi possono essere utilizzate con Json, Xml, Binary ecc.
Controlla anche questo post del blog per maggiori informazioni.
dai un'occhiata alla mia nuova libreria Serialize.Linq . Serializza le espressioni linq in json, xml e binary.
Non per intero; tuttavia, l' esempio Dynamic LINQ potrebbe essere di aiuto. Puoi certamente serializzare un'espressione in una stringa (in una certa misura - i generici sembrano un po 'irregolari), ma non esiste un parser integrato.
I servizi WCF RIA consentono la serializzazione IQuerayble<T>
Stavo lavorando a un progetto per la serializzazione di espressioni. Va bene e puoi usarlo. http://www.codeproject.com/Articles/851187/ServicePredicateBuilder-for-creating-Serializable