private void RegisterInternal <TService>(
     Func <IContainer, TService> func,
     IReuse reuse,
     IfRegistered ifRegistered = IfRegistered.AppendNew)
 {
     _dryContainer.RegisterDelegate(
         c => func.Invoke(c.Resolve <IContainer>()),
         reuse,
         null,
         MapIfAlreadyRegistered(ifRegistered));
 }