/// <summary> /// Uses xPike dependency injection. /// </summary> /// <param name="app">The application.</param> /// <param name="dependencyProvider">The dependency provider.</param> /// <param name="applicationPackage">The application package.</param> /// <returns>IAppBuilder.</returns> public static IAppBuilder UseXPikeDependencyInjection(this IAppBuilder app, IDependencyProvider dependencyProvider, IDependencyPackage applicationPackage) { return(app.Use <XPikeDependencyInjectionMiddleware>(dependencyProvider, applicationPackage)); }
/// <summary> /// Can be optionally used to reduce the overhead of repeatedly registering the same packages once they are loaded. /// </summary> /// <param name="dependencyCollection">This instance.</param> /// <param name="package">The package to load.</param> public static IDependencyCollection LoadPackage(this IDependencyCollection dependencyCollection, IDependencyPackage package) { if (package == null) { throw new ArgumentNullException(nameof(package)); } if (_loadedPackages.Contains(package.GetType())) { return(dependencyCollection); } _loadedPackages.Add(package.GetType()); package.RegisterPackage(dependencyCollection); return(dependencyCollection); }
/// <summary> /// Creates a new dependency engine that is configured by the current <see cref="AutofacDependencyPackage" />. /// </summary> /// <param name="applicationConfiguration"> /// Configuration information for the application. /// </param> /// <param name="serviceDescriptors"> /// A collection of service descriptors to which the engine will supply dependencies. /// </param> /// <param name="package"> /// The current dependency package. /// </param> /// <returns> /// The resulting dependency engine. /// </returns> /// <exception cref="ArgumentNullException"> /// <paramref name="applicationConfiguration" /> is <see langword="null" /> -or- <paramref name="package" /> is /// <see langword="null" /> -or- <paramref name="serviceDescriptors" /> is <see langword="null" /> . /// </exception> protected sealed override AutofacDependencyEngine CreateEngine(IConfiguration applicationConfiguration, IServiceCollection serviceDescriptors, IDependencyPackage <ContainerBuilder> package) => new AutofacDependencyEngine(applicationConfiguration, package, serviceDescriptors);
/// <summary> /// Creates a new dependency engine that is configured by the current <see cref="DotNetNativeDependencyPackage" />. /// </summary> /// <param name="applicationConfiguration"> /// Configuration information for the application. /// </param> /// <param name="serviceDescriptors"> /// A collection of service descriptors to which the engine will supply dependencies. /// </param> /// <param name="package"> /// The current dependency package. /// </param> /// <returns> /// The resulting dependency engine. /// </returns> /// <exception cref="ArgumentNullException"> /// <paramref name="applicationConfiguration" /> is <see langword="null" /> -or- <paramref name="package" /> is /// <see langword="null" /> -or- <paramref name="serviceDescriptors" /> is <see langword="null" /> . /// </exception> protected sealed override DotNetNativeDependencyEngine CreateEngine(IConfiguration applicationConfiguration, IServiceCollection serviceDescriptors, IDependencyPackage <ServiceCollection> package) => new DotNetNativeDependencyEngine(applicationConfiguration, package, serviceDescriptors);
internal DotNetNativeDependencyEngine(IConfiguration applicationConfiguration, IDependencyPackage <ServiceCollection> package, IServiceCollection serviceDescriptors) : base(applicationConfiguration, package, serviceDescriptors) { return; }
internal AutofacDependencyEngine(IConfiguration applicationConfiguration, IDependencyPackage <ContainerBuilder> package, IServiceCollection serviceDescriptors) : base(applicationConfiguration, package, serviceDescriptors) { return; }
/// <summary> /// Initializes a new instance of the <see cref="DependencyEngine{TConfigurator, TServiceInjector}" /> class. /// </summary> /// <param name="applicationConfiguration"> /// Configuration information for the application. /// </param> /// <param name="package"> /// A package that configures dependencies for the engine. /// </param> /// <param name="serviceDescriptors"> /// A collection of service descriptors to which the engine will supply dependencies. /// </param> /// <exception cref="ArgumentNullException"> /// <paramref name="applicationConfiguration" /> is <see langword="null" /> -or- <paramref name="package" /> is /// <see langword="null" /> -or- <paramref name="serviceDescriptors" /> is <see langword="null" /> . /// </exception> protected DependencyEngine(IConfiguration applicationConfiguration, IDependencyPackage <TConfigurator> package, IServiceCollection serviceDescriptors) : base(applicationConfiguration, package) { LazyProviderFactory = new Lazy <ServiceProviderFactory>(CreateProviderFactory, LazyThreadSafetyMode.ExecutionAndPublication); ServiceDescriptors = serviceDescriptors.RejectIf().IsNull(nameof(serviceDescriptors)).TargetArgument; }
/// <summary> /// Creates a new dependency engine that is configured by the current /// <see cref="DependencyPackage{TConfigurator, TEngine}" />. /// </summary> /// <param name="applicationConfiguration"> /// Configuration information for the application. /// </param> /// <param name="serviceDescriptors"> /// A collection of service descriptors to which the engine will supply dependencies. /// </param> /// <param name="package"> /// The current dependency package. /// </param> /// <returns> /// The resulting dependency engine. /// </returns> protected abstract TEngine CreateEngine(IConfiguration applicationConfiguration, IServiceCollection serviceDescriptors, IDependencyPackage <TConfigurator> package);