protected void TestInvoker(DomainConfiguration domainConfiguration, Action <Domain> domainValidationAction, Action <DomainModelDef> domainDefsValidationAction) { domainConfiguration.Types.Register(typeof(ModelDefCapturer)); var upgradeContext = new UpgradeContext(domainConfiguration); if (shouldBuildRealDomain) { using (var domain = Domain.Build(domainConfiguration)) { var modelDef = domain.Extensions.Get <DomainModelDef>(); if (domainDefsValidationAction != null && modelDef != null) { domainDefsValidationAction.Invoke(modelDef); } if (domainValidationAction != null) { domainValidationAction.Invoke(domain); } } } else { using (upgradeContext.Activate()) using (upgradeContext.Services) { BuildServices(upgradeContext); var domain = CreateDomainBuilder(upgradeContext).Invoke(); var modelDef = domain.Extensions.Get <DomainModelDef>(); if (domainDefsValidationAction != null && modelDef != null) { domainDefsValidationAction.Invoke(modelDef); } if (domainValidationAction != null) { domainValidationAction.Invoke(domain); } } } }