From d7b3a5eb9977473f32ac40c432b86c99169c3b03 Mon Sep 17 00:00:00 2001 From: Simon Gockner Date: Tue, 5 Nov 2019 16:36:40 +0100 Subject: [PATCH] - use generic Resolve<>() function from factory: preperation for #28 --- .../Registrations/TypedFactoryRegistration.cs | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/LightweightIocContainer/Registrations/TypedFactoryRegistration.cs b/LightweightIocContainer/Registrations/TypedFactoryRegistration.cs index 4bd8bc2..ede2178 100644 --- a/LightweightIocContainer/Registrations/TypedFactoryRegistration.cs +++ b/LightweightIocContainer/Registrations/TypedFactoryRegistration.cs @@ -103,10 +103,6 @@ namespace LightweightIocContainer.Registrations generator.Emit(OpCodes.Ldarg_0); generator.Emit(OpCodes.Ldfld, containerFieldBuilder); - generator.Emit(OpCodes.Ldtoken, createMethod.ReturnType); - - MethodInfo getTypeFromHandle = typeof(Type).GetMethod(nameof(Type.GetTypeFromHandle)); - generator.EmitCall(OpCodes.Call, getTypeFromHandle, null); if (args.Any()) { @@ -133,7 +129,7 @@ namespace LightweightIocContainer.Registrations #endif } - generator.EmitCall(OpCodes.Callvirt, typeof(IIocContainer).GetMethod(nameof(IIocContainer.Resolve), new[] {typeof(Type), typeof(object[])}), null); + generator.EmitCall(OpCodes.Callvirt, typeof(IIocContainer).GetMethod(nameof(IIocContainer.Resolve), new[] { typeof(object[]) })?.MakeGenericMethod(createMethod.ReturnType), null); generator.Emit(OpCodes.Castclass, createMethod.ReturnType); generator.Emit(OpCodes.Ret); }