/// <summary>
 /// 添加依赖注入映射描述信息到服务映射信息集合中。
 /// </summary>
 /// <param name="collection">服务映射信息集合。</param>
 /// <param name="serviceType">服务类型。</param>
 /// <param name="implementationInstance">服务实现实例。</param>
 /// <param name="lifetime">生命周期。</param>
 /// <returns></returns>
 public static IServiceCollection Add(this IServiceCollection collection, Type serviceType, object implementationInstance, LifetimeOption lifetime)
 {
     return(collection.TryAdd(ServiceDescriptor.Descriptor(serviceType, implementationInstance, lifetime)));
 }
 /// <summary>
 /// 添加依赖注入映射描述信息到服务映射信息集合中。
 /// </summary>
 /// <param name="collection">服务映射信息集合。</param>
 /// <param name="serviceType">服务类型。</param>
 /// <param name="implementationFactory">服务实现实例工厂。</param>
 /// <param name="lifetime">生命周期。</param>
 /// <returns></returns>
 public static IServiceCollection Add(this IServiceCollection collection, Type serviceType, Func <IServiceProvider, object> implementationFactory, LifetimeOption lifetime)
 {
     return(collection.TryAdd(ServiceDescriptor.Descriptor(serviceType, implementationFactory, lifetime)));
 }
Пример #3
0
 /// <summary>
 /// 添加依赖注入映射描述信息。
 /// </summary>
 /// <param name="collection">服务映射信息集合。</param>
 /// <param name="implementationTypes">服务实现类型序列。</param>
 /// <param name="lifetime">生命周期。</param>
 protected void AddTypeWithInterfaces(IServiceCollection collection, Type[] implementationTypes, LifetimeOption lifetime)
 {
     Type[] interfaceTypes;
     foreach (var implementationType in implementationTypes)
     {
         if (implementationType.IsAbstract || implementationType.IsInterface)
         {
             continue;
         }
         //
         interfaceTypes = GetImplementedInterfaces(implementationType);
         if (interfaceTypes.Length == 0)
         {
             collection.Add(implementationType, implementationType, lifetime);
             continue;
         }
         foreach (var interfaceType in interfaceTypes)
         {
             collection.Add(interfaceType, implementationType, lifetime);
         }
     }
 }
 /// <summary>
 /// 添加依赖注入映射描述信息到服务映射信息集合中。
 /// </summary>
 /// <typeparam name="TService">泛型服务类型。</typeparam>
 /// <typeparam name="TImplementation">泛型实现类型。</typeparam>
 /// <param name="collection">服务映射信息集合。</param>
 /// <param name="lifetime">生命周期。</param>
 /// <returns></returns>
 public static IServiceCollection Add <TService, TImplementation>(this IServiceCollection collection, LifetimeOption lifetime)
     where TService : class
     where TImplementation : TService
 {
     return(collection.TryAdd(ServiceDescriptor.Descriptor <TService, TImplementation>(lifetime)));
 }
Пример #5
0
 /// <summary>
 /// 初始化一个<see cref="ServiceDescriptor"/>类型的新实例。
 /// </summary>
 /// <param name="serviceType">服务类型。</param>
 /// <param name="implementationFactory">服务实现实例工厂。</param>
 /// <param name="lifetime">生命周期。</param>
 public ServiceDescriptor(Type serviceType, Func <IServiceProvider, object> implementationFactory, LifetimeOption lifetime) : this(serviceType, lifetime)
 {
     ImplementationFactory = implementationFactory;
 }
Пример #6
0
 /// <summary>
 /// 初始化一个<see cref="ServiceDescriptor"/>类型的新实例。
 /// </summary>
 /// <param name="serviceType">服务类型。</param>
 /// <param name="lifetime">生命周期。</param>
 private ServiceDescriptor(Type serviceType, LifetimeOption lifetime)
 {
     Lifetime    = lifetime;
     ServiceType = serviceType;
 }
Пример #7
0
 /// <summary>
 /// 创建依赖注入映射描述信息。
 /// </summary>
 /// <param name="serviceType">服务类型。</param>
 /// <param name="implementationFactory">服务实现实例工厂。</param>
 /// <param name="lifetime">生命周期。</param>
 /// <returns></returns>
 public static ServiceDescriptor Descriptor(Type serviceType, Func <IServiceProvider, object> implementationFactory, LifetimeOption lifetime)
 {
     return(new ServiceDescriptor(serviceType, implementationFactory, lifetime));
 }
Пример #8
0
 /// <summary>
 /// 创建依赖注入映射描述信息。
 /// </summary>
 /// <param name="serviceType">服务类型。</param>
 /// <param name="implementationInstance">服务实现实例。</param>
 /// <param name="lifetime">生命周期。</param>
 /// <returns></returns>
 public static ServiceDescriptor Descriptor(Type serviceType, object implementationInstance, LifetimeOption lifetime)
 {
     return(new ServiceDescriptor(serviceType, implementationInstance, lifetime));
 }
Пример #9
0
 /// <summary>
 /// 创建依赖注入映射描述信息。
 /// </summary>
 /// <typeparam name="TService">泛型服务类型。</typeparam>
 /// <typeparam name="TImplementation">泛型实现类型。</typeparam>
 /// <param name="lifetime">生命周期。</param>
 /// <returns></returns>
 public static ServiceDescriptor Descriptor <TService, TImplementation>(LifetimeOption lifetime)
     where TService : class
     where TImplementation : TService
 {
     return(Descriptor(typeof(TService), typeof(TImplementation), lifetime));
 }
Пример #10
0
 /// <summary>
 /// 初始化一个<see cref="ServiceDescriptor"/>类型的新实例。
 /// </summary>
 /// <param name="serviceType">服务类型。</param>
 /// <param name="implementationInstance">服务实现实例。</param>
 /// <param name="lifetime">生命周期。</param>
 public ServiceDescriptor(Type serviceType, object implementationInstance, LifetimeOption lifetime) : this(serviceType, lifetime)
 {
     ImplementationInstance = implementationInstance;
 }
Пример #11
0
 /// <summary>
 /// 初始化一个<see cref="ServiceDescriptor"/>类型的新实例。
 /// </summary>
 /// <param name="serviceType">服务类型。</param>
 /// <param name="implementationType">服务实现类型。</param>
 /// <param name="lifetime">生命周期。</param>
 public ServiceDescriptor(Type serviceType, Type implementationType, LifetimeOption lifetime) : this(serviceType, lifetime)
 {
     ImplementationType = implementationType;
 }