Castle.DynamicProxy.Builder.CodeGenerators.InterfaceProxyGenerator.GenerateConstructor C# (CSharp) Method

GenerateConstructor() protected method

Generates one public constructor receiving the IInterceptor instance and instantiating a HybridCollection
protected GenerateConstructor ( ) : EasyConstructor
return Castle.DynamicProxy.Builder.CodeBuilder.EasyConstructor
		protected override EasyConstructor GenerateConstructor()
		{
			ArgumentReference arg1 = new ArgumentReference(Context.Interceptor);
			ArgumentReference arg2 = new ArgumentReference(typeof(object));
			ArgumentReference arg3 = new ArgumentReference(typeof(object[]));

			EasyConstructor constructor;

			if (Context.HasMixins)
			{
				constructor = MainTypeBuilder.CreateConstructor(arg1, arg2, arg3);
			}
			else
			{
				constructor = MainTypeBuilder.CreateConstructor(arg1, arg2);
			}

			GenerateConstructorCode(constructor.CodeBuilder, arg1, SelfReference.Self, arg3);

			constructor.CodeBuilder.InvokeBaseConstructor();

			constructor.CodeBuilder.AddStatement(new AssignStatement(
			                                     	_targetField, arg2.ToExpression()));

			constructor.CodeBuilder.AddStatement(new ReturnStatement());

			return constructor;
		}