public static IServiceCollection AddApnConfig(this IServiceCollection services, Func <ApnConfig> func)
        {
            ApnConfig config = func.Invoke();

            services.AddApnConfig(config);
            return(services);
        }
        public static IServiceCollection AddApnConfig(this IServiceCollection services, Func <IServiceProvider, ApnConfig> func)
        {
            IServiceProvider provider = services.BuildServiceProvider();
            ApnConfig        config   = func(provider);

            services.AddApnConfig(config);
            return(services);
        }
 public static IServiceCollection AddApnConfig(this IServiceCollection services, ApnConfig config)
 {
     services.AddSingleton <ApnConfig>(config);
     return(services);
 }