Class PathAccessorEmitterBase
- Namespace
- Rinku.Querying.Parameters
- Assembly
- Rinku.dll
Provides the common conditional flow for a member rule that supports both direct and flattened/nested parameter members. Prefer this base for new custom emitters.
public abstract class PathAccessorEmitterBase : IAccessorEmitter, IPathAccessorEmitter
- Inheritance
-
PathAccessorEmitterBase
- Implements
- Derived
- Inherited Members
- Extension Methods
Methods
Emit(ILGenerator, int, string, ParameterMemberAccess, LocalBuilder?, int, bool, bool)
Emits the direct parameter binding path.
public void Emit(ILGenerator il, int index, string key, ParameterMemberAccess member, LocalBuilder? handlerValues, int handlerIndex, bool handlerValue, bool bindValue)
Parameters
ilILGeneratorindexintkeystringmemberParameterMemberAccesshandlerValuesLocalBuilderhandlerIndexinthandlerValueboolbindValuebool
Emit(ILGenerator, int, string, Type, MemberInfo, LocalBuilder?, int, bool, bool)
Emits the direct parameter binding path.
public void Emit(ILGenerator il, int index, string key, Type type, MemberInfo member, LocalBuilder? handlerValues, int handlerIndex, bool handlerValue, bool bindValue)
Parameters
ilILGeneratorindexintkeystringtypeTypememberMemberInfohandlerValuesLocalBuilderhandlerIndexinthandlerValueboolbindValuebool
EmitCondition(ILGenerator, ParameterMemberAccess)
Emits the condition that decides whether this key is usable.
protected abstract void EmitCondition(ILGenerator il, ParameterMemberAccess member)
Parameters
ilILGeneratormemberParameterMemberAccess
EmitParameterValue(ILGenerator, ParameterMemberAccess)
Emits the object value consumed by command binding and UseWith.
protected virtual void EmitParameterValue(ILGenerator il, ParameterMemberAccess member)
Parameters
ilILGeneratormemberParameterMemberAccess
EmitStackUsage(ILGenerator, ParameterMemberAccess)
Emits whether the resolved value is currently usable, leaving a bool on the IL stack.
public void EmitStackUsage(ILGenerator il, ParameterMemberAccess member)
Parameters
ilILGeneratormemberParameterMemberAccess
EmitStackUsage(ILGenerator, Type, MemberInfo)
Emits whether the member is currently usable, leaving a bool on the IL stack.
public void EmitStackUsage(ILGenerator il, Type type, MemberInfo member)
Parameters
ilILGeneratortypeTypememberMemberInfo
EmitStackValue(ILGenerator, ParameterMemberAccess)
Emits the raw typed resolved value directly onto the IL stack.
public void EmitStackValue(ILGenerator il, ParameterMemberAccess member)
Parameters
ilILGeneratormemberParameterMemberAccess
EmitStackValue(ILGenerator, Type, MemberInfo)
Emits the raw typed member value directly onto the IL stack.
public void EmitStackValue(ILGenerator il, Type type, MemberInfo member)
Parameters
ilILGeneratortypeTypememberMemberInfo
EmitUseWith(ILGenerator, int, ParameterMemberAccess, bool, UseWithEmissionContext)
Emits the value-array path used by UseWith.
public void EmitUseWith(ILGenerator il, int index, ParameterMemberAccess member, bool bindValue, UseWithEmissionContext context)
Parameters
ilILGeneratorindexintmemberParameterMemberAccessbindValueboolcontextUseWithEmissionContext
EmitUseWith(ILGenerator, int, Type, MemberInfo, bool, UseWithEmissionContext)
Emits the value-array path used by UseWith.
public void EmitUseWith(ILGenerator il, int index, Type type, MemberInfo member, bool bindValue, UseWithEmissionContext context)
Parameters
ilILGeneratorindexinttypeTypememberMemberInfobindValueboolcontextUseWithEmissionContext
EmitValue(ILGenerator, ParameterMemberAccess)
Emits the raw typed source value.
protected abstract void EmitValue(ILGenerator il, ParameterMemberAccess member)
Parameters
ilILGeneratormemberParameterMemberAccess
GetStackType(ParameterMemberAccess)
The raw type left on the IL stack by EmitStackValue(ILGenerator, ParameterMemberAccess).
public Type GetStackType(ParameterMemberAccess member)
Parameters
memberParameterMemberAccess
Returns
GetStackType(Type, MemberInfo)
The raw type left on the IL stack by EmitStackValue(ILGenerator, Type, MemberInfo).
public Type GetStackType(Type type, MemberInfo member)
Parameters
typeTypememberMemberInfo
Returns
GetValueType(ParameterMemberAccess)
The raw type emitted by EmitValue(ILGenerator, ParameterMemberAccess).
protected virtual Type GetValueType(ParameterMemberAccess member)
Parameters
memberParameterMemberAccess
Returns
Validate(ParameterMemberAccess)
Checks the emitter against the resolved member path.
public virtual void Validate(ParameterMemberAccess member)
Parameters
memberParameterMemberAccess
Validate(Type, MemberInfo)
Checks the emitter against the member it will read.
public void Validate(Type type, MemberInfo member)
Parameters
typeTypememberMemberInfo