Class AccessorEmitter
- Namespace
- Rinku.Querying.Parameters
- Assembly
- Rinku.dll
Shared IL helpers for parameter access.
public static class AccessorEmitter
- Inheritance
-
AccessorEmitter
- Inherited Members
Methods
BoxIfNeeded(ILGenerator, Type)
Boxes the value currently on the IL stack when valueType is a value type.
public static void BoxIfNeeded(ILGenerator il, Type valueType)
Parameters
ilILGeneratorvalueTypeType
EmitMemberLoad(ILGenerator, Type, MemberInfo, int)
Helper to load the instance and access the specific direct member. Handles the difference between value types and class references.
public static void EmitMemberLoad(ILGenerator il, Type targetType, MemberInfo member, int sourceArgument = 0)
Parameters
ilILGeneratortargetTypeTypememberMemberInfosourceArgumentint
EmitMemberValue(ILGenerator, Type, MemberInfo, int)
Loads a direct member value and boxes it when the member type is a value type.
public static void EmitMemberValue(ILGenerator il, Type targetType, MemberInfo member, int sourceArgument = 0)
Parameters
ilILGeneratortargetTypeTypememberMemberInfosourceArgumentint
EmitSlot(ILGenerator, int, string, LocalBuilder?, int, bool, bool, Action<ILGenerator>, Action<ILGenerator>)
Emits one direct parameter binding slot.
public static void EmitSlot(ILGenerator il, int index, string key, LocalBuilder? handlerValues, int handlerIndex, bool handlerValue, bool bindValue, Action<ILGenerator> condition, Action<ILGenerator> value)
Parameters
ilILGeneratorindexintkeystringhandlerValuesLocalBuilderhandlerIndexinthandlerValueboolbindValueboolconditionAction<ILGenerator>valueAction<ILGenerator>
EmitUseWithSlot(ILGenerator, int, bool, Action<ILGenerator>, Action<ILGenerator>, UseWithEmissionContext)
Emits one value-array binding slot.
public static void EmitUseWithSlot(ILGenerator il, int index, bool bindValue, Action<ILGenerator> condition, Action<ILGenerator> value, UseWithEmissionContext context)
Parameters
ilILGeneratorindexintbindValueboolconditionAction<ILGenerator>valueAction<ILGenerator>contextUseWithEmissionContext
MarkUseWithSlot(ILGenerator, int, UseWithEmissionContext)
Emits a dynamic affected-slot write and records that the generated accessor may write dynamically.
public static void MarkUseWithSlot(ILGenerator il, int index, UseWithEmissionContext context)
Parameters
ilILGeneratorindexintcontextUseWithEmissionContext