Table of Contents

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

il ILGenerator
valueType Type

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

il ILGenerator
targetType Type
member MemberInfo
sourceArgument int

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

il ILGenerator
targetType Type
member MemberInfo
sourceArgument int

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

il ILGenerator
index int
key string
handlerValues LocalBuilder
handlerIndex int
handlerValue bool
bindValue bool
condition Action<ILGenerator>
value Action<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

il ILGenerator
index int
bindValue bool
condition Action<ILGenerator>
value Action<ILGenerator>
context UseWithEmissionContext

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

il ILGenerator
index int
context UseWithEmissionContext