/// <summary> /// 使 <see cref="IServiceCollection"/> 能够使用 Fireasy 框架中的配置。 /// </summary> /// <param name="services"></param> /// <param name="configuration"></param> /// <returns></returns> public static IServiceCollection AddFireasy(this IServiceCollection services, IConfiguration configuration, Action <Fireasy.Common.CoreOptions> setupAction = null) { var assemblies = new List <Assembly>(); FindReferenceAssemblies(Assembly.GetCallingAssembly(), assemblies); foreach (var assembly in assemblies) { var type = assembly.GetType("Microsoft.Extensions.DependencyInjection.ConfigurationBinder"); if (type != null) { var method = type.GetMethod("Bind", BindingFlags.Static | BindingFlags.NonPublic); if (method != null) { method.Invoke(null, new object[] { services, configuration }); } } } var options = new Fireasy.Common.CoreOptions(); setupAction?.Invoke(options); assemblies.Clear(); return(services); }
/// <summary> /// 使 <see cref="IServiceCollection"/> 能够使用 Fireasy 框架中的配置。 /// </summary> /// <param name="services"></param> /// <param name="configuration"></param> /// <returns></returns> public static IServiceCollection AddFireasy(this IServiceCollection services, IConfiguration configuration, Action <Fireasy.Common.CoreOptions> setupAction = null) { ConfigurationUnity.Bind(Assembly.GetCallingAssembly(), configuration, services); var options = new Fireasy.Common.CoreOptions(); setupAction?.Invoke(options); return(services); }