Show / Hide Table of Contents

Class CachedLambdaCompiler

Provides a set of compilation methods for lambda expressions that support caching the compiled delegate.

Inheritance
System.Object
CachedLambdaCompiler
Namespace: System.Linq.Expressions
Assembly: Nuqleon.Linq.CompilerServices.dll
Syntax
public static class CachedLambdaCompiler : Object

Methods

Compile(LambdaExpression, ICompiledDelegateCache)

Compiles the specified lambda expression by hoisting constants from the expression and consulting the cache for the resulting templatized lambda expression. This technique increases the likelihood for a cache hit.

Declaration
public static Delegate Compile(this LambdaExpression expression, ICompiledDelegateCache cache)
Parameters
Type Name Description
System.Linq.Expressions.LambdaExpression expression

Lambda expression to compile.

ICompiledDelegateCache cache

Cache to hold the compiled delegate.

Returns
Type Description
System.Delegate

Compiled delegate for the specified lambda expression.

Compile(LambdaExpression, ICompiledDelegateCache, Boolean)

Compiles the specified lambda expression by hoisting constants from the expression and consulting the cache for the resulting templatized lambda expression. This technique increases the likelihood for a cache hit.

Declaration
public static Delegate Compile(this LambdaExpression expression, ICompiledDelegateCache cache, bool outliningEnabled)
Parameters
Type Name Description
System.Linq.Expressions.LambdaExpression expression

Lambda expression to compile.

ICompiledDelegateCache cache

Cache to hold the compiled delegate.

System.Boolean outliningEnabled

Specifies whether nested lambda expressions should be outlined into delegate constants by recursive compilation using the cache.

Returns
Type Description
System.Delegate

Compiled delegate for the specified lambda expression.

Compile(LambdaExpression, ICompiledDelegateCache, Boolean, IConstantHoister)

Compiles the specified lambda expression by hoisting constants from the expression and consulting the cache for the resulting templatized lambda expression. This technique increases the likelihood for a cache hit.

Declaration
public static Delegate Compile(this LambdaExpression expression, ICompiledDelegateCache cache, bool outliningEnabled, IConstantHoister hoister)
Parameters
Type Name Description
System.Linq.Expressions.LambdaExpression expression

Lambda expression to compile.

ICompiledDelegateCache cache

Cache to hold the compiled delegate.

System.Boolean outliningEnabled

Specifies whether nested lambda expressions should be outlined into delegate constants by recursive compilation using the cache.

IConstantHoister hoister

Constant hoister used to selectively hoist constants in the specified expression.

Returns
Type Description
System.Delegate

Compiled delegate for the specified lambda expression.

Compile<T>(Expression<T>, ICompiledDelegateCache)

Compiles the specified lambda expression by hoisting constants from the expression and consulting the cache for the resulting templatized lambda expression. This technique increases the likelihood for a cache hit.

Declaration
public static T Compile<T>(this Expression<T> expression, ICompiledDelegateCache cache)
Parameters
Type Name Description
System.Linq.Expressions.Expression<T> expression

Lambda expression to compile.

ICompiledDelegateCache cache

Cache to hold the compiled delegate.

Returns
Type Description
T

Compiled delegate for the specified lambda expression.

Type Parameters
Name Description
T

Delegate type of the lambda expression.

Compile<T>(Expression<T>, ICompiledDelegateCache, Boolean)

Compiles the specified lambda expression by hoisting constants from the expression and consulting the cache for the resulting templatized lambda expression. This technique increases the likelihood for a cache hit.

Declaration
public static T Compile<T>(this Expression<T> expression, ICompiledDelegateCache cache, bool outliningEnabled)
Parameters
Type Name Description
System.Linq.Expressions.Expression<T> expression

Lambda expression to compile.

ICompiledDelegateCache cache

Cache to hold the compiled delegate.

System.Boolean outliningEnabled

Specifies whether nested lambda expressions should be outlined into delegate constants by recursive compilation using the cache.

Returns
Type Description
T

Compiled delegate for the specified lambda expression.

Type Parameters
Name Description
T

Delegate type of the lambda expression.

Compile<T>(Expression<T>, ICompiledDelegateCache, Boolean, IConstantHoister)

Compiles the specified lambda expression by hoisting constants from the expression and consulting the cache for the resulting templatized lambda expression. This technique increases the likelihood for a cache hit.

Declaration
public static T Compile<T>(this Expression<T> expression, ICompiledDelegateCache cache, bool outliningEnabled, IConstantHoister hoister)
Parameters
Type Name Description
System.Linq.Expressions.Expression<T> expression

Lambda expression to compile.

ICompiledDelegateCache cache

Cache to hold the compiled delegate.

System.Boolean outliningEnabled

Specifies whether nested lambda expressions should be outlined into delegate constants by recursive compilation using the cache.

IConstantHoister hoister

Constant hoister used to selectively hoist constants in the specified expression.

Returns
Type Description
T

Compiled delegate for the specified lambda expression.

Type Parameters
Name Description
T

Delegate type of the lambda expression.

In This Article
Back to top Generated by DocFX