本文整理汇总了C#中System.Reflection.Emit.CodeGenerator.Emit方法的典型用法代码示例。如果您正苦于以下问题:C# CodeGenerator.Emit方法的具体用法?C# CodeGenerator.Emit怎么用?C# CodeGenerator.Emit使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Reflection.Emit.CodeGenerator
的用法示例。
在下文中一共展示了CodeGenerator.Emit方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Emit
public void Emit(CodeGenerator generator)
{
_targetObject.Emit(generator);
_value.Emit(generator);
generator.CastType(_value.ObjectType, _field.FieldType);
generator.Emit(OpCodes.Stfld, _field);
}
示例2: Emit
public void Emit(CodeGenerator generator)
{
_value.Emit(generator);
if (ObjectType.IsValueType)
{
generator.Emit(OpCodes.Box, ObjectType);
}
}
示例3: Emit
public void Emit(CodeGenerator generator)
{
switch (_localBuilder.LocalIndex)
{
case 0:
generator.Emit(OpCodes.Ldloc_0);
break;
case 1:
generator.Emit(OpCodes.Ldloc_1);
break;
case 2:
generator.Emit(OpCodes.Ldloc_2);
break;
case 3:
generator.Emit(OpCodes.Ldloc_3);
break;
default:
generator.Emit(OpCodes.Ldloc, _localBuilder.LocalIndex);
break;
}
}
示例4: Emit
public void Emit(CodeGenerator generator)
{
switch (_index)
{
case 0:
generator.Emit(OpCodes.Ldarg_0);
break;
case 1:
generator.Emit(OpCodes.Ldarg_1);
break;
case 2:
generator.Emit(OpCodes.Ldarg_2);
break;
case 3:
generator.Emit(OpCodes.Ldarg_3);
break;
default:
generator.Emit(OpCodes.Ldarg, _index);
break;
}
}
示例5: Emit
public void Emit(CodeGenerator generator)
{
_returnValue.Emit(generator);
if (ObjectType == _returnValue.ObjectType)
{
generator.Emit(OpCodes.Ret);
}
else
{
generator.CastType(_returnValue.ObjectType, ObjectType)
.Emit(OpCodes.Ret);
}
}
示例6: Emit
public void Emit(CodeGenerator generator)
{
_array.Emit(generator);
switch (_index)
{
case 0:
generator.Emit(OpCodes.Ldc_I4_0);
break;
case 1:
generator.Emit(OpCodes.Ldc_I4_1);
break;
case 2:
generator.Emit(OpCodes.Ldc_I4_2);
break;
case 3:
generator.Emit(OpCodes.Ldc_I4_3);
break;
default:
generator.Emit(OpCodes.Ldc_I4, _index);
break;
}
generator.Emit(OpCodes.Ldelem, ObjectType);
}
示例7: Emit
public void Emit(CodeGenerator generator)
{
_localBuilder.Where(x => x.LocalType.IsValueType)
.Do(x => generator.Emit(OpCodes.Ldloca, x.LocalIndex))
.Do(x => generator.Emit(OpCodes.Initobj, x.LocalType));
}
示例8: Emit
public void Emit(CodeGenerator generator)
{
generator.Emit(OpCodes.Ldnull);
}