C# Class Rebel.Framework.Expressions.Remotion.CustomQueryParser

Heavily based on the default QueryParser normally used in Relinq, but primary difference is that we need to establish a different ExpressionTreeParser with a custom DynamicTransformingExpressionTreeProcessor in place of the default TransformingExpressionTreeProcessor in order to avoid it from precompiling certain expressions such as those referencing DynamicMemberMetadata.GetMemberMethod in order to reference dynamic operations inside regular .NET 3.5 expression trees. Relinq doesn't support DynamicExpression from .NET 4 at time of writing.
Inheritance: IQueryParser
Mostrar archivo Open project: RebelCMS/rebelcmsxu5

Public Methods

Method Description
CreateDefault ( ) : CustomQueryParser
CustomQueryParser ( Remotion.Linq.Parsing.Structure.ExpressionTreeParser expressionTreeParser ) : System.Linq.Expressions
GetParsedQuery ( Expression expressionTreeRoot ) : Remotion.Linq.QueryModel

Protected Methods

Method Description
EnsureCustomModifiersRegisteredWithRelinq ( ) : void

Ensures the custom modifiers are registered with Relinq.

Private Methods

Method Description
ApplyAllNodes ( IExpressionNode node, Remotion.Linq.Parsing.Structure.IntermediateModel.ClauseGenerationContext clauseGenerationContext ) : Remotion.Linq.QueryModel

Method Details

CreateDefault() public static method

public static CreateDefault ( ) : CustomQueryParser
return CustomQueryParser

CustomQueryParser() public method

public CustomQueryParser ( Remotion.Linq.Parsing.Structure.ExpressionTreeParser expressionTreeParser ) : System.Linq.Expressions
expressionTreeParser Remotion.Linq.Parsing.Structure.ExpressionTreeParser
return System.Linq.Expressions

EnsureCustomModifiersRegisteredWithRelinq() protected method

Ensures the custom modifiers are registered with Relinq.
protected EnsureCustomModifiersRegisteredWithRelinq ( ) : void
return void

GetParsedQuery() public method

public GetParsedQuery ( Expression expressionTreeRoot ) : Remotion.Linq.QueryModel
expressionTreeRoot System.Linq.Expressions.Expression
return Remotion.Linq.QueryModel