public Container(StObjEngineConfigureContext c) { _c = c; _baseForConfig = new SimpleServiceContainer(); _defaultActivator = new SimpleObjectActivator(); _baseForConfig.Add(_defaultActivator); BaseProvider = _baseForConfig; }
/// <summary> /// Attempts to locate a <see cref="ISimpleObjectActivator"/> service or falls back to /// a default <see cref="SimpleObjectActivator"/> and calls <see cref="ISimpleObjectActivator.Create"/> /// on it. /// Returns null on error. /// </summary> /// <param name="this">This <see cref="IServiceProvider"/>.</param> /// <param name="monitor">The monitor to use.</param> /// <param name="t">Type to instantiate.</param> /// <param name="requiredParameters">Optional required parameters.</param> /// <returns>A new instance on success, null on error.</returns> public static object?SimpleObjectCreate(this IServiceProvider @this, IActivityMonitor monitor, Type t, params object[] requiredParameters) { if (monitor == null) { throw new ArgumentNullException(nameof(monitor)); } ISimpleObjectActivator activator = @this.GetService <ISimpleObjectActivator>(false); if (activator == null) { monitor.Info("No registered ISimpleObjectActivator found. Using transient new SimpleObjectActivator()."); activator = new SimpleObjectActivator(); } return(activator.Create(monitor, t, @this, requiredParameters)); }