Esempio n. 1
0
		private void EmitByRef(ILGenerator gen)
		{
			var elementType = type.GetElementType();
			if (IsPrimitiveOrClass(elementType))
			{
				OpCodeUtil.EmitLoadOpCodeForDefaultValueOfType(gen, elementType);
				OpCodeUtil.EmitStoreIndirectOpCodeForType(gen, elementType);
			}
			else if (elementType.GetTypeInfo().IsGenericParameter || elementType.GetTypeInfo().IsValueType)
			{
				gen.Emit(OpCodes.Initobj, elementType);
			}
			else
			{
				throw new ProxyGenerationException("Can't emit default value for reference of type " + elementType);
			}
		}
Esempio n. 2
0
 public override void StoreReference(ILGenerator gen)
 {
     OpCodeUtil.EmitStoreIndirectOpCodeForType(gen, Type);
 }