Class RuntimeTrackingMemberEmitter<TOriginal>
Per-member emitter selected during configuration. The final emitter determines whether the member is snapshot-backed, direct TEdit state, read-only original state, nested draft state, or something custom.
public abstract class RuntimeTrackingMemberEmitter<TOriginal>
Type Parameters
TOriginal
- Inheritance
-
RuntimeTrackingMemberEmitter<TOriginal>
- Derived
- Inherited Members
- Extension Methods
Properties
CanRead
Gets whether the member can be read.
public abstract bool CanRead { get; }
Property Value
CanWrite
Gets whether the member can be written.
public abstract bool CanWrite { get; }
Property Value
UsesSnapshot
Gets whether the member uses snapshot storage.
public abstract bool UsesSnapshot { get; }
Property Value
Methods
DefineStorage(RuntimeTrackingMemberEmitContext<TOriginal>)
Defines storage for the member.
protected abstract void DefineStorage(RuntimeTrackingMemberEmitContext<TOriginal> context)
Parameters
contextRuntimeTrackingMemberEmitContext<TOriginal>
EmitConfirm(RuntimeTrackingMemberEmitContext<TOriginal>, ILGenerator)
Emits member confirmation.
protected virtual void EmitConfirm(RuntimeTrackingMemberEmitContext<TOriginal> context, ILGenerator il)
Parameters
contextRuntimeTrackingMemberEmitContext<TOriginal>ilILGenerator
EmitEditValueAsObject(RuntimeTrackingMemberEmitContext<TOriginal>, ILGenerator)
Emits the edited value as an object.
protected virtual void EmitEditValueAsObject(RuntimeTrackingMemberEmitContext<TOriginal> context, ILGenerator il)
Parameters
contextRuntimeTrackingMemberEmitContext<TOriginal>ilILGenerator
EmitGet(RuntimeTrackingMemberEmitContext<TOriginal>, ILGenerator)
Emits a member read.
protected abstract void EmitGet(RuntimeTrackingMemberEmitContext<TOriginal> context, ILGenerator il)
Parameters
contextRuntimeTrackingMemberEmitContext<TOriginal>ilILGenerator
EmitHasChange(RuntimeTrackingMemberEmitContext<TOriginal>, ILGenerator)
Emits a change check.
protected virtual void EmitHasChange(RuntimeTrackingMemberEmitContext<TOriginal> context, ILGenerator il)
Parameters
contextRuntimeTrackingMemberEmitContext<TOriginal>ilILGenerator
EmitInitializeSnapshot(RuntimeTrackingMemberEmitContext<TOriginal>, ILGenerator)
Emits snapshot initialization.
protected virtual void EmitInitializeSnapshot(RuntimeTrackingMemberEmitContext<TOriginal> context, ILGenerator il)
Parameters
contextRuntimeTrackingMemberEmitContext<TOriginal>ilILGenerator
EmitOriginalValueAsObject(RuntimeTrackingMemberEmitContext<TOriginal>, ILGenerator)
Emits the accepted value as an object.
protected virtual void EmitOriginalValueAsObject(RuntimeTrackingMemberEmitContext<TOriginal> context, ILGenerator il)
Parameters
contextRuntimeTrackingMemberEmitContext<TOriginal>ilILGenerator
EmitSet(RuntimeTrackingMemberEmitContext<TOriginal>, ILGenerator)
Emits a member write.
protected virtual void EmitSet(RuntimeTrackingMemberEmitContext<TOriginal> context, ILGenerator il)
Parameters
contextRuntimeTrackingMemberEmitContext<TOriginal>ilILGenerator
GetNestedRuntimePathMembers()
Gets nested members exposed through runtime paths.
protected virtual IReadOnlyList<MemberInfo> GetNestedRuntimePathMembers()