diff --git a/Enyim.Caching/Configuration/MemcachedClientConfiguration.cs b/Enyim.Caching/Configuration/MemcachedClientConfiguration.cs index edc5d150..1b21814e 100755 --- a/Enyim.Caching/Configuration/MemcachedClientConfiguration.cs +++ b/Enyim.Caching/Configuration/MemcachedClientConfiguration.cs @@ -52,6 +52,7 @@ public MemcachedClientConfiguration( SocketPool = new SocketPoolConfiguration(); if (options.SocketPool != null) { + options.SocketPool.CheckPoolSize(); options.SocketPool.CheckTimeout(); SocketPool.MinPoolSize = options.SocketPool.MinPoolSize; diff --git a/Enyim.Caching/Configuration/MemcachedClientOptions.cs b/Enyim.Caching/Configuration/MemcachedClientOptions.cs index 0864e04c..59f64f39 100644 --- a/Enyim.Caching/Configuration/MemcachedClientOptions.cs +++ b/Enyim.Caching/Configuration/MemcachedClientOptions.cs @@ -67,6 +67,18 @@ public class SocketPoolOptions public TimeSpan DeadTimeout { get; set; } = new TimeSpan(0, 0, 10); public TimeSpan QueueTimeout { get; set; } = new TimeSpan(0, 0, 0, 0, 100); + public void CheckPoolSize() + { + if (MinPoolSize < 0) + throw new ArgumentOutOfRangeException("value", "MinPoolSize must be >= 0!"); + + if (MinPoolSize > MaxPoolSize) + throw new ArgumentOutOfRangeException("value", "MinPoolSize must be <= MaxPoolSize!"); + + if (MaxPoolSize < MinPoolSize) + throw new ArgumentOutOfRangeException("value", "MaxPoolSize must be >= MinPoolSize!"); + } + public void CheckTimeout() { CheckTimeout(nameof(ConnectionTimeout), ConnectionTimeout); diff --git a/Enyim.Caching/Configuration/SocketPoolConfiguration.cs b/Enyim.Caching/Configuration/SocketPoolConfiguration.cs index 64165020..51f3a7f9 100644 --- a/Enyim.Caching/Configuration/SocketPoolConfiguration.cs +++ b/Enyim.Caching/Configuration/SocketPoolConfiguration.cs @@ -19,16 +19,7 @@ public class SocketPoolConfiguration : ISocketPoolConfiguration int ISocketPoolConfiguration.MinPoolSize { get { return this.minPoolSize; } - set - { - if (value < 0) - throw new ArgumentOutOfRangeException("value", "MinPoolSize must be >= 0!"); - - if (value > this.maxPoolSize) - throw new ArgumentOutOfRangeException("value", "MinPoolSize must be <= MaxPoolSize!"); - - this.minPoolSize = value; - } + set { this.minPoolSize = value; } } /// @@ -39,13 +30,7 @@ int ISocketPoolConfiguration.MinPoolSize int ISocketPoolConfiguration.MaxPoolSize { get { return this.maxPoolSize; } - set - { - if (value < this.minPoolSize) - throw new ArgumentOutOfRangeException("value", "MaxPoolSize must be >= MinPoolSize!"); - - this.maxPoolSize = value; - } + set { this.maxPoolSize = value; } } TimeSpan ISocketPoolConfiguration.ConnectionTimeout diff --git a/Enyim.Caching/Enyim.Caching.csproj b/Enyim.Caching/Enyim.Caching.csproj index 12ef1c32..e58c67ff 100755 --- a/Enyim.Caching/Enyim.Caching.csproj +++ b/Enyim.Caching/Enyim.Caching.csproj @@ -2,7 +2,7 @@ EnyimMemcachedCore is a Memcached client library for .NET Core. Usage: Add services.AddEnyimMemcached(...) and app.UseEnyimMemcached() in Startup. Add IMemcachedClient into constructor. - 2.1.0.1 + 2.1.0.2 cnblogs.com netstandard2.0 true