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(IOtherMixinRequirements target)
 {
     //MixinAttribute.RequiresInitialization = false, so we can construct
     //AbstractWrapper directly
     AbstractWrapper = new AbstractWrapper();
 }
        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;
        }