public SyntaxTree Read(Delegate @delegate) { Contract.Assert(@delegate?.Method?.DeclaringType != null); var asm = @delegate.Method.DeclaringType.Assembly; _assemblyProvider.Prepare(asm); var decompiler = new CSharpDecompiler(asm.Location, _assemblyProvider, new DecompilerSettings() { ExtensionMethods = false, NamedArguments = false }); var token = @delegate.Method.MetadataToken; var method = MetadataTokenHelpers.TryAsEntityHandle(token); var ast = decompiler.Decompile(new List <EntityHandle>() { method.Value }); return(ast); }