Convertir une expression > to String et vice versa En c #

c# expression expression-trees lambda linq

Question

Je veux convertir Expression<Func<Loan, bool>> To string et vice versa. puis-je le faire? comment implémenter la méthode ConvertStringToExpression ?

internal class Program
{
    public class Loan
    {
        public bool IsActive { get; set; }
    }

    private static void Main(string[] args)
    {
        Expression<Func<Loan, bool>> expression = l => !l.IsActive;

        var expStr = ConvertExpressionToString(expression);

        var exp = ConvertStringToExpression(expStr);
    }

    public static string ConvertExpressionToString(Expression<Func<Loan, bool>> expression)
    {
        //return ???
        throw new NotImplementedException();
    }

    public static string ConvertStringToExpression(string expression)
    {
        //return ???
        throw new NotImplementedException();
    }
}

Réponse acceptée

J'ai continué à travailler sur la bibliothèque mentionnée par Serializing et Deserializing Expression Trees en C #.

On dirait que le projet a été abandonné (2008), mais j’ai travaillé sur celui-ci et il fonctionne maintenant avec .NET 4.0 et Silverlight. J'ai apporté des corrections de bugs à leur code et je l'ai également rendu plus indépendant de DAL.

http://expressiontree.codeplex.com/


Réponse d'expert

Pas en entier; Cependant, l'exemple Dynamic LINQ peut aider un peu. Vous pouvez certainement sérialiser une expression sur une chaîne (dans une certaine mesure - les génériques semblent un peu fous), mais il n'y a pas d'analyseur intégré.



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi