private static void ResolvedInstanceSelfFuncRegister(IServiceCollection services, DependencyRegisterDescriptor d) { var lifetime = d.LifetimeType.ToMsLifetime(); switch (lifetime) { case ServiceLifetime.Scoped: services.AddScoped(p => d.ResolveFuncForImplementation(p.ToAbstract())); break; case ServiceLifetime.Singleton: services.AddSingleton(p => d.ResolveFuncForImplementation(p.ToAbstract())); break; case ServiceLifetime.Transient: services.AddTransient(p => d.ResolveFuncForImplementation(p.ToAbstract())); break; default: services.AddTransient(p => d.ResolveFuncForImplementation(p.ToAbstract())); break; } }
private static void TypeToResolvedInstanceFuncRegister(IServiceContext services, DependencyRegisterDescriptor d) { var lifetime = d.LifetimeType.ToAspectCoreLifetime(); switch (lifetime) { case Lifetime.Scoped: services.AddDelegate(d.ServiceType, p => d.ResolveFuncForImplementation(p.ToAbstract()), Lifetime.Scoped); break; case Lifetime.Singleton: services.AddDelegate(d.ServiceType, p => d.ResolveFuncForImplementation(p.ToAbstract()), Lifetime.Singleton); break; case Lifetime.Transient: services.AddDelegate(d.ServiceType, p => d.ResolveFuncForImplementation(p.ToAbstract())); break; default: services.AddDelegate(d.ServiceType, p => d.ResolveFuncForImplementation(p.ToAbstract())); break; } }
private static void ResolvedInstanceSelfFuncRegister(ContainerBuilder services, DependencyRegisterDescriptor d) { var builder = services.Register(context => d.ResolveFuncForImplementation(context.ToAbstract())); switch (d.LifetimeType) { case DependencyLifetimeType.Scoped: builder.InstancePerLifetimeScope(); break; case DependencyLifetimeType.Singleton: builder.SingleInstance(); break; case DependencyLifetimeType.Transient: builder.InstancePerDependency(); break; default: builder.InstancePerDependency(); break; } }