46 lines
1.8 KiB
C#
46 lines
1.8 KiB
C#
using JiShe.CollectBus.Protocol.Contracts.Interfaces;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using System;
|
|
using Volo.Abp;
|
|
using Volo.Abp.Modularity;
|
|
|
|
namespace JiShe.CollectBus.Protocol.Test
|
|
{
|
|
public class JiSheCollectBusTestProtocolModule : AbpModule
|
|
{
|
|
public override void ConfigureServices(ServiceConfigurationContext context)
|
|
{
|
|
Console.WriteLine("TestProtocolPlugin ConfigureServices");
|
|
context.Services.AddKeyedSingleton<IProtocolPlugin, TestProtocolPlugin>(nameof(TestProtocolPlugin));
|
|
}
|
|
|
|
public override async Task OnApplicationInitializationAsync(ApplicationInitializationContext context)
|
|
{
|
|
Console.WriteLine("TestProtocolPlugin OnApplicationInitializationAsync");
|
|
var protocol = context.ServiceProvider.GetRequiredKeyedService<IProtocolPlugin>(nameof(TestProtocolPlugin));
|
|
RemoveServiceAtRuntime(context.ServiceProvider);
|
|
await protocol.LoadAsync();
|
|
}
|
|
|
|
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);
|
|
//}
|
|
}
|
|
}
|
|
}
|