Search code examples
c#.netreflectionanonymous-methods

source code of anonymous method


How get a source code of anonymous method?

For example:

Func<Boolean> func = (() => DateTime.Now.Seconds % 2 == 0);

Console.WriteLine(GetSourceCode(func)); // must: DateTime.Now.Seconds % 2 == 0

String GetSourceCode<T>(Func<T> f) - ???

Solution

  • You can wrap it inside Expression and call ToString() on it and that will get you the source code.

    Like this:

    Expression<Func<Boolean>> func = (() => DateTime.Now.Seconds % 2 == 0);
    var str = func.ToString();
    

    The output str becomes () => DateTime.Now.Seconds % 2 == 0