JiShe.CollectBus/protocols/JiShe.CollectBus.Protocol.Test/JiSheCollectBusTestProtocolModule.cs

46 lines
1.8 KiB
C#
Raw Normal View History

2025-04-11 17:12:29 +08:00
using JiShe.CollectBus.Protocol.Contracts.Interfaces;
using Microsoft.Extensions.DependencyInjection;
2025-04-24 21:01:01 +08:00
using System;
2025-04-11 17:12:29 +08:00
using Volo.Abp;
using Volo.Abp.Modularity;
namespace JiShe.CollectBus.Protocol.Test
{
public class JiSheCollectBusTestProtocolModule : AbpModule
2025-04-11 17:12:29 +08:00
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
2025-04-24 00:34:00 +08:00
Console.WriteLine("TestProtocolPlugin ConfigureServices");
2025-04-11 17:12:29 +08:00
context.Services.AddKeyedSingleton<IProtocolPlugin, TestProtocolPlugin>(nameof(TestProtocolPlugin));
}
public override async Task OnApplicationInitializationAsync(ApplicationInitializationContext context)
2025-04-11 17:12:29 +08:00
{
2025-04-24 21:01:01 +08:00
Console.WriteLine("TestProtocolPlugin OnApplicationInitializationAsync");
2025-04-11 17:12:29 +08:00
var protocol = context.ServiceProvider.GetRequiredKeyedService<IProtocolPlugin>(nameof(TestProtocolPlugin));
2025-04-24 21:01:01 +08:00
RemoveServiceAtRuntime(context.ServiceProvider);
await protocol.LoadAsync();
2025-04-11 17:12:29 +08:00
}
2025-04-24 21:01:01 +08:00
public override void OnApplicationShutdown(ApplicationShutdownContext context)
{
Console.WriteLine("TestProtocolPlugin OnApplicationShutdown");
base.OnApplicationShutdown(context);
}
public void RemoveServiceAtRuntime(IServiceProvider serviceProvider)
{
var services = serviceProvider.GetService<IServiceCollection>();
services?.AddKeyedSingleton<IProtocolPlugin, TestProtocolPlugin>(nameof(TestProtocolPlugin));
//var services = (IServiceCollection)serviceProvider.GetService(typeof(IServiceCollection));
//var pluginService = serviceProvider.GetKeyedService<IProtocolPlugin>(nameof(TestProtocolPlugin));
//if (services != null && pluginService!=null)
//{
// services.Remove(pluginService);
//}
}
2025-04-11 17:12:29 +08:00
}
}