private void ClimReference(TField value, Type type) { if (type == typeof(TRuntime)) { ClimbDelegate <TRuntime> climbDelegate = Member.Climb; climbDelegate(_processor, (TRuntime)value); } else { ClimbDelegate <TField> climbDelegate = ClimbStore.GetClimb <TField>(type); climbDelegate(_processor, value); } }
private void ClimbStruct(TField value, Type type) { object boxed = value; ClimbDelegate <object> climbDelegate; if (type == typeof(TRuntime)) { climbDelegate = Member.StructClimb; } else { climbDelegate = ClimbStore.GetClimb <object>(type); } climbDelegate(_processor, boxed); SetField((TField)boxed); }
public void Climb(object parent, TProcessor processor) { _climbStore.GetClimb <object>(parent.GetType())(processor, parent); }