JiShe.CollectBus/protocols/JiShe.CollectBus.Protocol.T6452007/JiSheCollectBusProtocolT6452007Module.cs

44 lines
1.9 KiB
C#
Raw Normal View History

2025-04-25 14:23:06 +08:00
using JiShe.CollectBus.Protocol.Interfaces;
2024-11-13 00:30:24 +08:00
using Microsoft.Extensions.DependencyInjection;
2025-04-22 16:48:53 +08:00
using System.Reflection;
2024-11-13 00:30:24 +08:00
using Volo.Abp;
using Volo.Abp.Modularity;
namespace JiShe.CollectBus.Protocol
{
2025-04-25 12:01:15 +08:00
public class JiSheCollectBusProtocolT6452007Module : AbpModule
2024-11-13 00:30:24 +08:00
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
2025-04-25 12:01:15 +08:00
context.Services.AddKeyedSingleton<IProtocolPlugin, T6452007ProtocolPlugin>(nameof(T6452007ProtocolPlugin));
2025-04-24 00:34:00 +08:00
//RegisterProtocolAnalysis(context.Services);
LoadAnalysisStrategy(context.Services);
2024-11-13 00:30:24 +08:00
}
2025-04-15 17:57:47 +08:00
public override async Task OnApplicationInitializationAsync(ApplicationInitializationContext context)
2024-11-13 00:30:24 +08:00
{
2025-04-24 21:01:01 +08:00
Console.WriteLine("StandardProtocolPlugin OnApplicationInitializationAsync");
2025-04-25 12:01:15 +08:00
var standardProtocol = context.ServiceProvider.GetRequiredKeyedService<IProtocolPlugin>(nameof(T6452007ProtocolPlugin));
await standardProtocol.LoadAsync();
2024-11-13 00:30:24 +08:00
}
2025-04-22 16:48:53 +08:00
2025-04-24 21:01:01 +08:00
public override void OnApplicationShutdown(ApplicationShutdownContext context)
{
Console.WriteLine("StandardProtocolPlugin OnApplicationShutdown");
base.OnApplicationShutdown(context);
}
2025-04-24 00:34:00 +08:00
public void LoadAnalysisStrategy(IServiceCollection services)
{
var assembly = Assembly.GetExecutingAssembly();
var analysisStrategyTypes = assembly.GetTypes().Where(t => !t.IsAbstract && !t.IsInterface && t.GetInterfaces().Any(i => i.IsGenericType && i.GetGenericTypeDefinition() == typeof(IAnalysisStrategy<,>)));
foreach (var analysisStrategyType in analysisStrategyTypes)
{
var service = analysisStrategyType.GetInterfaces().First();
services.AddKeyedSingleton(service, analysisStrategyType.Name,analysisStrategyType);
}
}
2024-11-13 00:30:24 +08:00
}
}