Пример #1
0
 /// <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));
 }
Пример #2
0
        /// <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);
        }
Пример #3
0
 /// <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);
Пример #5
0
 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;
 }
Пример #7
0
 /// <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;
 }
Пример #8
0
 /// <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);