Default to placing Protected Members and Abstract Wrappers classes in the pMixins.AutoGenerated namespace and only fallback to housing inside the __pMixinAutoGenerated private class if necessary.
Reasoning:
public class Mixin
{
protected Mixin(object obj){}
}
public abstract class AbstractMixin
{
protected AbstractMixin(object obj){}
}
[pMixin(Mixin = typeof(Mixin), ExplicitlyInitializeMixin = true)]
[pMixin(Mixin = typeof(AbstractMixin), ExplicitlyInitializeMixin = true)]
public partial class NonPublicNonParameterlessConstructor
{
Mixin IMixinConstructorRequirement<Mixin>.InitializeMixin()
{
// should be able to say return new AbstractMixinAbstractWrapper(this, 1);
return new __pMixinAutoGenerated.pMixins_Mvc_Recipes_NonPublicNonParameterlessConstructor_Mixin.MixinAbstractWrapper((this, 1);
}
AbstractMixinAbstractWrapper IMixinConstructorRequirement<AbstractMixinAbstractWrapper>.InitializeMixin()
{
//Wrapper is in
return new AbstractMixinAbstractWrapper(this, 1);
}
}
Default to placing Protected Members and Abstract Wrappers classes in the pMixins.AutoGenerated namespace and only fallback to housing inside the __pMixinAutoGenerated private class if necessary.
Reasoning: