示例#1
0
    public static IServiceCollection AddPerfCounterManager(this IServiceCollection services, IConfiguration configuration)
    {
        IPerfCounter.Init();
        switch (configuration["PerfCounterStorage"])
        {
        case "database":
            services.AddScoped <IPerfCounter, PerfCounterInDatabase>();
            services.TryAddScoped <PerfCounterInDatabase>();
            break;

        default:
            services.AddSingleton <IPerfCounter, DefaultPerfCounter>();
            break;
        }

        services.Configure <HostOptions>(options => options.BackgroundServiceExceptionBehavior = BackgroundServiceExceptionBehavior.Ignore);
        services.AddHostedService <PerfCounterBackService>();
        return(services);
    }