private IContainer performInitialization() { // We do not want to register the IoC container to avoid static pollution that may collide with OSPSuite-R var container = InfrastructureRegister.Initialize(registerContainerAsStatic: false); using (container.OptimizeDependencyResolution()) { container.RegisterImplementationOf(new SynchronizationContext()); container.AddRegister(x => x.FromType <RRegister>()); container.AddRegister(x => x.FromType <CoreRegister>()); container.AddRegister(x => x.FromType <InfrastructureRegister>()); InfrastructureRegister.RegisterSerializationDependencies(container); registerMinimalImplementations(container); } var configuration = container.Resolve <IPKSimConfiguration>(); var currentPath = new FileInfo(Assembly.GetAssembly(GetType()).Location).DirectoryName; if (!File.Exists(configuration.PKSimDbPath)) { configuration.PKSimDbPath = Path.Combine(currentPath, CoreConstants.PK_SIM_DB_FILE); } if (!File.Exists(configuration.PKParametersFilePath)) { configuration.PKParametersFilePath = Path.Combine(currentPath, Constants.Files.PK_PARAMETERS_FILE_NAME); } if (!File.Exists(configuration.DimensionFilePath)) { configuration.DimensionFilePath = Path.Combine(currentPath, Constants.Files.DIMENSIONS_FILE_NAME); } // This will log the version of PKSIm used to R Console.WriteLine(PKSimConstants.Information.InitializingPKSim(CoreConstants.PRODUCT_NAME, configuration.FullVersion)); // Serialization mapping will require access to PKSim DB and as such, it needs to be performed after the DB was set. InfrastructureRegister.LoadDefaultEntities(container); return(container); }