Exemplo n.º 1
0
        private static void TypeToInstanceRegister(IServiceCollection services, RegisterProxyDescriptor d)
        {
            var lifetime = d.LifetimeType.ToMsLifetime();

            switch (lifetime)
            {
            case ServiceLifetime.Singleton:
                services.AddSingleton(d.ServiceType, d.InstanceOfImplementation);
                break;

            default:
                throw new InvalidOperationException("Invalid operation for scoped or Transient mode.");
            }
        }
Exemplo n.º 2
0
        private static void InstanceSelfRegister(IServiceContainer services, RegisterProxyDescriptor d)
        {
            var lifetime = d.LifetimeType.ToAspectCoreLifetime();

            switch (lifetime)
            {
            case Lifetime.Singleton:
                services.AddInstance(d.InstanceOfImplementation);
                break;

            default:
                throw new InvalidOperationException("Invalid operation for scoped or Transient mode.");
            }
        }
Exemplo n.º 3
0
        private static void TypeToInstanceRegister(ContainerBuilder services, RegisterProxyDescriptor d)
        {
            var builder = services.RegisterInstance(d.InstanceOfImplementation).As(d.ServiceType);

            switch (d.LifetimeType)
            {
            case RegisterProxyLifetimeType.Scoped:
                builder.InstancePerLifetimeScope();
                break;

            case RegisterProxyLifetimeType.Singleton:
                builder.SingleInstance();
                break;

            case RegisterProxyLifetimeType.Transient:
                builder.InstancePerDependency();
                break;

            default:
                builder.InstancePerDependency();
                break;
            }
        }
Exemplo n.º 4
0
        private static void TypeToInstanceFuncRegister(IServiceCollection services, RegisterProxyDescriptor d)
        {
            var lifetime = d.LifetimeType.ToMsLifetime();

            switch (lifetime)
            {
            case ServiceLifetime.Scoped:
                services.AddScoped(d.ServiceType, p => d.InstanceFuncForImplementation());
                break;

            case ServiceLifetime.Singleton:
                services.AddSingleton(d.ServiceType, p => d.InstanceFuncForImplementation());
                break;

            case ServiceLifetime.Transient:
                services.AddTransient(d.ServiceType, p => d.InstanceFuncForImplementation());
                break;

            default:
                services.AddTransient(d.ServiceType, p => d.InstanceFuncForImplementation());
                break;
            }
        }
Exemplo n.º 5
0
        private static void TypeSelfRegister(IServiceContainer services, RegisterProxyDescriptor d)
        {
            var lifetime = d.LifetimeType.ToAspectCoreLifetime();

            services.AddType(d.ImplementationTypeSelf, lifetime);
        }
Exemplo n.º 6
0
        private static void TypeToInstanceFuncRegister(IServiceContainer services, RegisterProxyDescriptor d)
        {
            var lifetime = d.LifetimeType.ToAspectCoreLifetime();

            services.AddDelegate(d.ServiceType, r => d.InstanceFuncForImplementation(), lifetime);
        }