/// <summary> /// 注册并使用自动构造 /// </summary> /// <typeparam name="TService">基类型</typeparam> /// <returns>构造后的类型</returns> /// <remarks> /// 构造参数构造方式, /// 1. ILogger构造成ILogger<T> /// 2. FromConfigAttribute特性标识的构造成从配置文件读取的对象 /// 3. 其余全部通过依赖构造(如果无法依赖构造或未注册的,后果未知) /// 公开属性构造方式 /// 1. ILogger构造成ILogger<T> /// 2. FromConfigAttribute特性标识的构造成从配置文件读取的对象 /// 3. FromServicesAttribute通过依赖构造(如果无法依赖构造或未注册的,后果未知) /// </remarks> public static IServiceCollection AddAutoTransient <TService>() where TService : class { var func = new DynamicCreateBuilder().AutoCreate <TService>(); ServiceCollection.AddTransient(func); return(ServiceCollection); }
/// <summary> /// 注册并使用动态构造 /// </summary> /// <typeparam name="TService">类型</typeparam> /// <returns>构造后的类型</returns> /// <remarks> /// 构造参数构造方式, /// 1. ILogger构造成ILogger<T> /// 2. FromConfigAttribute特性标识的构造成从配置文件读取的对象 /// 3. 其余全部通过依赖构造(如果无法依赖构造或未注册的,后果未知) /// 公开属性构造方式 /// 1. ILogger构造成ILogger<T> /// 2. FromConfigAttribute特性标识的构造成从配置文件读取的对象 /// 3. FromServicesAttribute通过依赖构造(如果无法依赖构造或未注册的,后果未知) /// </remarks> public static IServiceCollection AddAutoSingleton <TService>() where TService : class { var func = new DynamicCreateBuilder().AutoCreate <TService>(); ServiceCollection.AddSingleton(func); return(ServiceCollection); }
/// <summary> /// 注册并使用自动构造 /// </summary> /// <typeparam name="TService">基类型</typeparam> /// <typeparam name="TImplementation">实际类型</typeparam> /// <returns>构造后的类型</returns> /// <remarks> /// 构造参数构造方式, /// 1. ILogger构造成ILogger<T> /// 2. FromConfigAttribute特性标识的构造成从配置文件读取的对象 /// 3. 其余全部通过依赖构造(如果无法依赖构造或未注册的,后果未知) /// 公开属性构造方式 /// 1. ILogger构造成ILogger<T> /// 2. FromConfigAttribute特性标识的构造成从配置文件读取的对象 /// 3. FromServicesAttribute通过依赖构造(如果无法依赖构造或未注册的,后果未知) /// </remarks> public static IServiceCollection AddAutoScoped <TService, TImplementation>() where TService : class where TImplementation : class, TService { var func = new DynamicCreateBuilder().AutoCreate <TImplementation>(); ServiceCollection.AddScoped <TService>(func); return(ServiceCollection); }