public object SystemInfo() { IServiceProvider provider = HttpContext.RequestServices; dynamic info = new ExpandoObject(); OSharpPackManager packManager = provider.GetService <OSharpPackManager>(); info.Packs = packManager.SourcePacks.OrderBy(m => m.Level).ThenBy(m => m.Order).ThenBy(m => m.GetType().FullName).Select(m => new { m.GetType().Name, Class = m.GetType().FullName, Level = m.Level.ToString(), m.Order, m.IsEnabled }).ToList(); string version = Assembly.GetExecutingAssembly().GetProductVersion(); info.Lines = new List <string>() { "WebApi 数据服务已启动", $"当前版本:{version}" }; return(info); }
public IActionResult SystemInfo() { IServiceProvider provider = HttpContext.RequestServices; dynamic info = new ExpandoObject(); OSharpPackManager packManager = provider.GetService <OSharpPackManager>(); info.Packs = packManager.SourcePacks.OrderBy(m => m.Level).ThenBy(m => m.Order).ThenBy(m => m.GetType().FullName).Select(m => new { m.GetType().Name, Class = m.GetType().FullName, Level = m.Level.ToString(), m.Order, m.IsEnabled }).ToList(); string version = Assembly.GetExecutingAssembly().GetProductVersion(); MvcOptions mvcOps = provider.GetService <IOptions <MvcOptions> >().Value; info.Lines = new List <string>() { "WebApi 数据服务已启动", $"版本号:{version}", $"数据连接:{provider.GetOSharpOptions().GetDbContextOptions(typeof(DefaultDbContext)).ConnectionString}", $"MvcFilters:\r\n{mvcOps.Filters.ExpandAndToString(m => $"{m.ToString()}-{m.GetHashCode()}", "\r\n")}" }; return(Json(info)); }
/// <summary> /// 将OSharp服务,各个<see cref="OsharpPack"/>模块的服务添加到服务容器中 /// </summary> public static IServiceCollection AddOSharp(this IServiceCollection services, Action <IOSharpBuilder> builderAction = null, AppServiceScanOptions scanOptions = null) { Check.NotNull(services, nameof(services)); IOSharpBuilder builder = new OSharpBuilder(); if (builderAction != null) { builderAction(builder); } OSharpPackManager manager = new OSharpPackManager(builder, new AppDomainAllAssemblyFinder()); manager.LoadPacks(services); services.AddSingleton(provider => manager); if (scanOptions == null) { scanOptions = new AppServiceScanOptions(); } services = new AppServiceAdder(scanOptions).AddServices(services); if (builder.OptionsAction != null) { services.Configure(builder.OptionsAction); } return(services); }
/// <summary> /// 应用OSharp框架,初始化各个Pack /// </summary> public static IServiceProvider UseOSharp(this IServiceProvider provider) { OSharpPackManager packManager = provider.GetService <OSharpPackManager>(); packManager.UsePacks(provider); return(provider); }
/// <summary> /// OSharp框架初始化 /// </summary> public static IApplicationBuilder UseOSharp(this IApplicationBuilder app) { IServiceProvider provider = app.ApplicationServices; OSharpPackManager packManager = provider.GetService <OSharpPackManager>(); packManager.UsePacks(app); return(app); }
public static IServiceProvider UnitTestInit(this IServiceCollection services) { services.AddOSharp(build => build.AddCorePack()); IServiceProvider provider = services.BuildServiceProvider(); OSharpPackManager packManager = provider.GetService <OSharpPackManager>(); packManager.UsePacks(provider); return(provider); }
/// <summary> /// OSharp框架初始化 /// </summary> public static IApplicationBuilder UseOSharp(this IApplicationBuilder app) { IServiceProvider serviceProvider = app.ApplicationServices; OSharpPackManager moduleManager = serviceProvider.GetService <OSharpPackManager>(); moduleManager.UseModules(serviceProvider); return(app); }
public void TrySetApplicationServiceProvider_Test() { IServiceCollection services = new ServiceCollection(); services.AddScoped <ServiceLocatorTests, ServiceLocatorTests>(); services.AddLogging(); services.AddOSharp(b => b.AddCorePack()); IServiceProvider provider = services.BuildServiceProvider(); OSharpPackManager packManager = provider.GetService <OSharpPackManager>(); packManager.UsePacks(provider); ServiceLocator.Instance.GetService <ServiceLocatorTests>().ShouldNotBeNull(); }
/// <summary> /// 将OSharp服务,各个<see cref="OsharpPack"/>模块的服务添加到服务容器中 /// </summary> public static IServiceCollection AddOSharp(this IServiceCollection services, Action <IOSharpBuilder> builderAction = null) { Check.NotNull(services, nameof(services)); IOSharpBuilder builder = new OSharpBuilder(); if (builderAction != null) { builderAction(builder); } OSharpPackManager manager = new OSharpPackManager(builder, new AppDomainAllAssemblyFinder()); manager.LoadPacks(services); services.AddSingleton(provider => manager); return(services); }