From 2204ce8ea5224329f1b217a8c5cd566e76b045af Mon Sep 17 00:00:00 2001 From: ohad Date: Fri, 8 Feb 2013 13:04:25 +0200 Subject: [PATCH] Bug fix: CompositionProxyTypeBuilder crashed when class has protected constructor. --- .../Proxy/CompositionProxyTypeBuilder.cs | 4 ++-- .../Objects/ClassWithProtectedCtor.cs | 13 +++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 test/Spring/Spring.Core.Tests/Objects/ClassWithProtectedCtor.cs diff --git a/src/Spring/Spring.Core/Proxy/CompositionProxyTypeBuilder.cs b/src/Spring/Spring.Core/Proxy/CompositionProxyTypeBuilder.cs index 8e9ad773..26717afd 100644 --- a/src/Spring/Spring.Core/Proxy/CompositionProxyTypeBuilder.cs +++ b/src/Spring/Spring.Core/Proxy/CompositionProxyTypeBuilder.cs @@ -197,8 +197,8 @@ namespace Spring.Proxy { il.Emit(OpCodes.Ldarg_S, i); } - il.Emit(OpCodes.Newobj, TargetType.GetConstructor( - ReflectionUtils.GetParameterTypes(constructor.GetParameters()))); + + il.Emit(OpCodes.Newobj, constructor); il.Emit(OpCodes.Stfld, targetInstance); } diff --git a/test/Spring/Spring.Core.Tests/Objects/ClassWithProtectedCtor.cs b/test/Spring/Spring.Core.Tests/Objects/ClassWithProtectedCtor.cs new file mode 100644 index 00000000..82005da0 --- /dev/null +++ b/test/Spring/Spring.Core.Tests/Objects/ClassWithProtectedCtor.cs @@ -0,0 +1,13 @@ +namespace Spring.Objects +{ + public class ClassWithProtectedCtor : IOther + { + protected ClassWithProtectedCtor() + { + } + + public void Absquatulate() + { + } + } +} \ No newline at end of file