Browse Source

提交

master
赵新宇 2 months ago
parent
commit
6c22045d18
  1. 6
      API/Wood.Admin.WebApi/Startup.cs
  2. 48
      API/Wood.Service/Controllers/RegistService/ServiceRegister.cs
  3. 3
      API/Wood.Service/Controllers/TaskConifgureController.cs

6
API/Wood.Admin.WebApi/Startup.cs

@ -400,10 +400,10 @@ namespace Wood.Admin.WebApi
#endregion
});
services.AddControllers();
var s = services.BuildServiceProvider().GetRequiredService<TaskConifgureController>();
//services.AddControllers();
//var s = services.BuildServiceProvider().GetRequiredService<TaskConifgureController>();
s.TaskAllAsync("2025-05-29");
//s.TaskAllAsync("2025-05-29");

48
API/Wood.Service/Controllers/RegistService/ServiceRegister.cs

@ -0,0 +1,48 @@
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace Wood.Service.Controllers.RegistService
{
public static class ServiceCollectionExtensions
{
// 批量注册接口及其实现类(接口以I开头,实现类与接口同名去掉I)
public static IServiceCollection AddServicesByConvention(this IServiceCollection services, Assembly assembly)
{
var implementationTypes = assembly.GetTypes()
.Where(t => t.IsClass && !t.IsAbstract && !t.IsGenericType);
foreach (var implementationType in implementationTypes)
{
var interfaces = implementationType.GetInterfaces()
.Where(i => i.Name == "I" + implementationType.Name);
foreach (var @interface in interfaces)
{
services.AddScoped(@interface, implementationType);
}
}
return services;
}
// 批量注册特定接口的所有实现类
public static IServiceCollection AddImplementationsOf<TInterface>(this IServiceCollection services, Assembly assembly, ServiceLifetime lifetime = ServiceLifetime.Scoped)
{
var interfaceType = typeof(TInterface);
var implementationTypes = assembly.GetTypes()
.Where(t => !t.IsInterface && !t.IsAbstract && interfaceType.IsAssignableFrom(t));
foreach (var implementationType in implementationTypes)
{
services.Add(new ServiceDescriptor(interfaceType, implementationType, lifetime));
}
return services;
}
}
}

3
API/Wood.Service/Controllers/TaskConifgureController.cs

@ -68,9 +68,10 @@ namespace TaskManager.Controllers
var first = await _context.TaskConifgure.FirstOrDefaultAsync(p => p.TaskName == taskName);
var url = first.Url;
var path = first.Api;
var client = first.Module;
var controller = _builder.GetRequiredService<SupplierProPlaningService>();
await controller.ExecuteAsync(url, path, taskName);
await controller.ExecuteAsync(url, path, taskName,client);
}

Loading…
Cancel
Save