コード例 #1
0
 public void Emit(CompilationContext context)
 {
     context.LoadSource(LoadPurpose.Parameter);
     context.CurrentType = typeof(TSource);
     _invokerBuilder.Emit(context);
     context.CurrentType = typeof(TTarget);
 }
コード例 #2
0
 public void Emit(CompilationContext context)
 {
     context.EmitTypeOf(typeof(TTarget));
     context.CurrentType = typeof(Type);
     _invokerBuilder.Emit(context);
     context.EmitCast(typeof(TTarget));
 }
コード例 #3
0
 public override void Emit(Type sourceType, Type targetType, CompilationContext context)
 {
     if (typeof(TSource) != sourceType)
     {
         context.EmitCast(typeof(TSource));
     }
     _invokerBuilder.Emit(context);
     if (targetType != typeof(TTarget))
     {
         context.EmitCast(targetType);
     }
     context.CurrentType = targetType;
 }
コード例 #4
0
 protected override void EmitSource(CompilationContext context)
 {
     context.LoadSource(LoadPurpose.Parameter);
     _invokerBuilder.Emit(context);
     context.CurrentType = SourceType;
 }