protected internal override void OnCompile()
        {
            Builder = this.TargetClass.Builder.DefineMethod(this.Name
                , this.Attributes
                , this.CallingConvention
                , (this.ReturnType != null) ? this.ReturnType.Target : null
                , this.ParameterTypes
                );
            ILGenerator il = SetILGenerator(Builder.GetILGenerator());
            try
            {
                CompileParameters(Builder);
                CompileLocals(il);

                ILHelper msil = new ILHelper(il);
                EmitInstructions(msil);
                if (_checkOverride != null)
                {
                    if (_checkOverride.IsAbstract)
                    {
                        this.TargetClass.Builder.DefineMethodOverride(Builder, _checkOverride);
                    }
                }
                msil.Return();
            }
            finally
            {
                SetILGenerator(null);
            }
        }
        protected internal override void OnCompile()
        {
            Builder = this.TargetClass.Builder.DefineConstructor(this.Attributes
                , this.CallingConvention, this.ParameterTypes
                );
            ILGenerator il = SetILGenerator(Builder.GetILGenerator());
            try
            {
                CompileParameters(Builder);
                CompileLocals(il);

                ILHelper msil = new ILHelper(il);
                base.EmitInstructions(msil);
                msil.Return();
            }
            finally
            {
                SetILGenerator(il);
            }
        }