public Uci() { var policy = new StringBuilderPooledObjectPolicy(); _pvPool = new DefaultObjectPool <StringBuilder>(policy, 128); O = new Dictionary <string, IOption>(); }
public override void ConfigureServices(ServiceConfigurationContext context) { base.ConfigureServices(context); Configure <MvcOptions>(options => { options.EnableEndpointRouting = false; }); Configure <CookiePolicyOptions>(options => { options.MinimumSameSitePolicy = SameSiteMode.Unspecified; options.OnAppendCookie = cookieContext => CheckSameSite(cookieContext.Context, cookieContext.CookieOptions); options.OnDeleteCookie = cookieContext => CheckSameSite(cookieContext.Context, cookieContext.CookieOptions); }); context.Services.TryAddSingleton <ObjectPoolProvider, DefaultObjectPoolProvider>(); context.Services.TryAddSingleton <ObjectPool <StringBuilder> >(serviceProvider => { var provider = serviceProvider.GetRequiredService <ObjectPoolProvider>(); var policy = new StringBuilderPooledObjectPolicy(); return(provider.Create(policy)); }); context.Services.AddWebEncoders(); }
// This method gets called by the runtime. Use this method to add services to the container. public static void ConfigureServices(IServiceCollection services) { services.AddResponseCompression(options => { options.Providers.Add <BrotliCompressionProvider>(); options.Providers.Add <GzipCompressionProvider>(); options.Providers.Add <CustomCompressionProvider>(); options.MimeTypes = ResponseCompressionDefaults.MimeTypes.Concat( new[] { "image/svg+xml", "image/jpeg", "image/gif", "image/png", "application/javascript", "application/json", "application/xml", "text/css", "text/html", "text/json", "text/plain", "text/xml" }); }); services.AddResponseCaching(options => { options.MaximumBodySize = 64 * 1024 * 1024; options.UseCaseSensitivePaths = true; }); services.AddDistributedMemoryCache(); services.TryAddSingleton <ObjectPoolProvider, DefaultObjectPoolProvider>(); services.TryAddSingleton(serviceProvider => { var provider = serviceProvider.GetRequiredService <ObjectPoolProvider>(); var policy = new StringBuilderPooledObjectPolicy(); return(provider.Create(policy)); }); services.AddRazorPages(); }
static StringBuilderPool() { var provider = new DefaultObjectPoolProvider(); var policy = new StringBuilderPooledObjectPolicy { MaximumRetainedCapacity = MaximumBuilderSize, }; Pool = provider.Create(policy); }
/// <summary> /// Creates an <see cref="ObjectPool{T}"/> that pools <see cref="StringBuilder"/> instances. /// </summary> /// <param name="provider">The <see cref="ObjectPoolProvider"/>.</param> /// <param name="initialCapacity">The initial capacity to initialize <see cref="StringBuilder"/> instances with.</param> /// <param name="maximumRetainedCapacity">The maximum value for <see cref="StringBuilder.Capacity"/> that is allowed to be /// retained, when an instance is returned.</param> /// <returns>The <see cref="ObjectPool{T}"/>.</returns> public static ObjectPool <StringBuilder> CreateStringBuilderPool( this ObjectPoolProvider provider, int initialCapacity, int maximumRetainedCapacity) { var policy = new StringBuilderPooledObjectPolicy() { InitialCapacity = initialCapacity, MaximumRetainedCapacity = maximumRetainedCapacity, }; return(provider.Create <StringBuilder>(policy)); }
/// <summary> /// DI添加<c>ObjectPool<StringBuilder></c> /// <seealso cref="ObjectPoolProvider"/> /// <seealso cref="StringBuilderPooledObjectPolicy"/> /// </summary> /// <param name="services">服务集合</param> /// <returns></returns> public static IServiceCollection AddStringBuilderPool(this IServiceCollection services) { services.TryAddSingleton <ObjectPoolProvider, DefaultObjectPoolProvider>(); services.TryAddSingleton(serviceProvider => { var provider = serviceProvider.GetRequiredService <ObjectPoolProvider>(); var policy = new StringBuilderPooledObjectPolicy(); return(provider.Create(policy)); }); return(services); }
public static ObjectPool<StringBuilder> CreateStringBuilderPool( this ObjectPoolProvider provider, int initialCapacity, int maximumRetainedCapacity) { var policy = new StringBuilderPooledObjectPolicy() { InitialCapacity = initialCapacity, MaximumRetainedCapacity = maximumRetainedCapacity, }; return provider.Create<StringBuilder>(policy); }
/// <summary> /// Adds the <see cref="IRequestExecutorResolver"/> and related services /// to the <see cref="IServiceCollection"/>. /// </summary> /// <param name="services">The <see cref="IServiceCollection"/>.</param> /// <returns>The <see cref="IServiceCollection"/>.</returns> public static IServiceCollection AddGraphQLCore(this IServiceCollection services) { if (services is null) { throw new ArgumentNullException(nameof(services)); } services.AddOptions(); services.TryAddSingleton<ObjectPoolProvider, DefaultObjectPoolProvider>(); services.TryAddSingleton<ObjectPool<StringBuilder>>(sp => { ObjectPoolProvider provider = sp.GetRequiredService<ObjectPoolProvider>(); var policy = new StringBuilderPooledObjectPolicy(); return provider.Create(policy); }); // core services services .TryAddRequestExecutorFactoryOptionsMonitor() .TryAddTypeConverter() .TryAddInputFormatter() .TryAddInputParser() .TryAddDefaultCaches() .TryAddDefaultDocumentHashProvider() .TryAddDefaultBatchDispatcher() .TryAddRequestContextAccessor() .TryAddDefaultDataLoaderRegistry() .TryAddIdSerializer() .TryAddDataLoaderParameterExpressionBuilder() .TryAddDataLoaderOptions(); // pools services .TryAddResultPool() .TryAddResolverTaskPool() .TryAddOperationContextPool() .TryAddDataLoaderTaskCachePool(); // global executor services services .TryAddVariableCoercion() .TryAddRequestExecutorResolver(); // parser services.TryAddSingleton(ParserOptions.Default); return services; }
/// <summary> /// /// </summary> /// <param name="services"></param> public void Load(IServiceCollection services) { var configuration = services.BuildServiceProvider().GetRequiredService <IConfiguration>(); services.Configure <RedisCacheSettings>( options => configuration.GetSection(nameof(RedisCacheSettings)).Bind(options)); services.Configure <BasketRulesSettings>( options => configuration.GetSection(nameof(BasketRulesSettings)).Bind(options)); services.Configure <LocalizedSettings>(options => options.ResourceName = LocalizedConstants.LocalizedResourcePath); services.Configure <MongoDbSettings>(options => configuration.GetSection(nameof(MongoDbSettings)).Bind(options)); services.TryAddSingleton <ObjectPoolProvider, DefaultObjectPoolProvider>(); services.TryAddSingleton(sp => { var provider = sp.GetRequiredService <ObjectPoolProvider>(); var policy = new StringBuilderPooledObjectPolicy(); return(provider.Create(policy)); }); }