public MasterWrapper(IAbstractWithProtectedNonParameterlessConstructorMixinRequirements target)
        {
            AbstractWrapper = target.InitializeMixin();

            PublicVirtualMethodFunc     = delegate() { return(AbstractWrapper.PublicVirtualMethod()); };
            ProteectedVirtualMethodFunc = delegate(int i) { return(AbstractWrapper.ProtectedVirtualMethod(i)); };

            PublicVirtaulPropertyGetFunc = () => AbstractWrapper.PublicVirtualProperty;
            PublicVirtualPropertySetFunc = (s) => AbstractWrapper.PublicVirtualProperty = s;
        }
        public MasterWrapper(IAbstractWithProtectedNonParameterlessConstructorMixinRequirements target)
        {
            AbstractWrapper = target.InitializeMixin();

            PublicVirtualMethodFunc = delegate() { return AbstractWrapper.PublicVirtualMethod(); };
            ProteectedVirtualMethodFunc = delegate(int i) { return AbstractWrapper.ProtectedVirtualMethod(i); }; 

            PublicVirtaulPropertyGetFunc = () => AbstractWrapper.PublicVirtualProperty;
            PublicVirtualPropertySetFunc = (s) => AbstractWrapper.PublicVirtualProperty = s;
        }
 //Add a helpful comment because Target will use this constructor
 /// <summary>
 /// Creates a new Instance of the wrapper for <see cref="AbstractWithProtectedNonParameterlessConstructorMixin"/>.
 /// This constructor is recommended for use to implement <see cref="IAbstractWithProtectedNonParameterlessConstructorMixinRequirements.InitializeMixin"/>
 /// </summary>
 /// <param name="target">Pass in <c>this</c></param>
 /// <param name="s"></param>
 public AbstractWrapper(IAbstractWithProtectedNonParameterlessConstructorMixinRequirements target, string s)
     : base(s)
 {
     _target = target;
 }
 //Add a helpful comment because Target will use this constructor
 /// <summary>
 /// Creates a new Instance of the wrapper for <see cref="AbstractWithProtectedNonParameterlessConstructorMixin"/>.
 /// This constructor is recommended for use to implement <see cref="IAbstractWithProtectedNonParameterlessConstructorMixinRequirements.InitializeMixin"/>
 /// </summary>
 /// <param name="target">Pass in <c>this</c></param>
 /// <param name="s"></param>
 public AbstractWrapper(IAbstractWithProtectedNonParameterlessConstructorMixinRequirements target, string s)
     : base(s)
 {
     _target = target;
 }