diff --git a/bus/EasyCaching.Bus.CSRedis/Configurations/CSRedisOptionsExtension.cs b/bus/EasyCaching.Bus.CSRedis/Configurations/CSRedisOptionsExtension.cs index b56920af..7dcffe0d 100644 --- a/bus/EasyCaching.Bus.CSRedis/Configurations/CSRedisOptionsExtension.cs +++ b/bus/EasyCaching.Bus.CSRedis/Configurations/CSRedisOptionsExtension.cs @@ -41,8 +41,6 @@ public void AddServices(IServiceCollection services) { services.AddOptions(); - services.TryAddSingleton(); - services.Configure(_name, _configure); services.AddSingleton(x => diff --git a/bus/EasyCaching.Bus.ConfluentKafka/Configurations/ConfluentKafkaOptionsExtension.cs b/bus/EasyCaching.Bus.ConfluentKafka/Configurations/ConfluentKafkaOptionsExtension.cs index aeaf8fd8..a810bbfb 100644 --- a/bus/EasyCaching.Bus.ConfluentKafka/Configurations/ConfluentKafkaOptionsExtension.cs +++ b/bus/EasyCaching.Bus.ConfluentKafka/Configurations/ConfluentKafkaOptionsExtension.cs @@ -28,8 +28,6 @@ public void AddServices(IServiceCollection services) { services.AddOptions(); - services.TryAddSingleton(); - services.AddOptions() .Configure(_confluentKafkaBusOptions); diff --git a/bus/EasyCaching.Bus.RabbitMQ/Configurations/RabbitMQBusOptionsExtension.cs b/bus/EasyCaching.Bus.RabbitMQ/Configurations/RabbitMQBusOptionsExtension.cs index c77edd42..8891ec70 100644 --- a/bus/EasyCaching.Bus.RabbitMQ/Configurations/RabbitMQBusOptionsExtension.cs +++ b/bus/EasyCaching.Bus.RabbitMQ/Configurations/RabbitMQBusOptionsExtension.cs @@ -37,7 +37,6 @@ public void AddServices(IServiceCollection services) services.AddOptions(); services.Configure(configure); - services.TryAddSingleton(); services.AddSingleton, ModelPooledObjectPolicy>(); services.AddSingleton(); } diff --git a/bus/EasyCaching.Bus.Redis/Configurations/RedisBusOptionsExtension.cs b/bus/EasyCaching.Bus.Redis/Configurations/RedisBusOptionsExtension.cs index fe06b869..6e18172b 100644 --- a/bus/EasyCaching.Bus.Redis/Configurations/RedisBusOptionsExtension.cs +++ b/bus/EasyCaching.Bus.Redis/Configurations/RedisBusOptionsExtension.cs @@ -44,7 +44,6 @@ public void AddServices(IServiceCollection services) services.AddOptions(); services.Configure(_name, configure); - services.TryAddSingleton(); services.AddSingleton(x => { var optionsMon = x.GetRequiredService>(); diff --git a/bus/EasyCaching.Bus.Zookeeper/Configurations/ZookeeperOptionsExtension.cs b/bus/EasyCaching.Bus.Zookeeper/Configurations/ZookeeperOptionsExtension.cs index e8da908a..901ff238 100644 --- a/bus/EasyCaching.Bus.Zookeeper/Configurations/ZookeeperOptionsExtension.cs +++ b/bus/EasyCaching.Bus.Zookeeper/Configurations/ZookeeperOptionsExtension.cs @@ -27,8 +27,6 @@ public void AddServices(IServiceCollection services) { services.AddOptions(); - services.TryAddSingleton(); - services.AddOptions() .Configure(_zkBusOptions); diff --git a/src/EasyCaching.CSRedis/Configurations/RedisOptionsExtension.cs b/src/EasyCaching.CSRedis/Configurations/RedisOptionsExtension.cs index 4b1b9230..0f2deaa1 100755 --- a/src/EasyCaching.CSRedis/Configurations/RedisOptionsExtension.cs +++ b/src/EasyCaching.CSRedis/Configurations/RedisOptionsExtension.cs @@ -48,8 +48,7 @@ public void AddServices(IServiceCollection services) { services.AddOptions(); - services.TryAddSingleton(); - + services.Configure(_name, _configure); services.TryAddSingleton(); diff --git a/src/EasyCaching.Core/Serialization/DefaultBinaryFormatterSerializer.cs b/src/EasyCaching.Core/Serialization/DefaultBinaryFormatterSerializer.cs deleted file mode 100644 index 937b01ba..00000000 --- a/src/EasyCaching.Core/Serialization/DefaultBinaryFormatterSerializer.cs +++ /dev/null @@ -1,108 +0,0 @@ -namespace EasyCaching.Core.Serialization -{ - using System; - using System.IO; - using System.Runtime.Serialization.Formatters.Binary; - - /// - /// Default binary formatter serializer. - /// - public class DefaultBinaryFormatterSerializer : IEasyCachingSerializer - { - /// - /// Gets the name. - /// - /// The name. - public string Name => EasyCachingConstValue.DefaultSerializerName; - - /// - /// Deserialize the specified bytes. - /// - /// The deserialize. - /// Bytes. - /// The 1st type parameter. - public T Deserialize(byte[] bytes) - { - if (bytes.Length == 0) - { - return (T)(object) null; - } - - using (var ms = new MemoryStream(bytes)) - { - return (T)(new BinaryFormatter().Deserialize(ms)); - } - } - - /// - /// Deserialize the specified bytes. - /// - /// The deserialize. - /// Bytes. - /// Type. - public object Deserialize(byte[] bytes, Type type) - { - if (bytes.Length == 0) - { - return null; - } - - using (var ms = new MemoryStream(bytes)) - { - return (new BinaryFormatter().Deserialize(ms)); - } - } - - /// - /// Deserializes the object. - /// - /// The object. - /// Value. - public object DeserializeObject(ArraySegment value) - { - using (var ms = new MemoryStream(value.Array, value.Offset, value.Count)) - { - return new BinaryFormatter().Deserialize(ms); - } - } - - /// - /// Serialize the specified value. - /// - /// The serialize. - /// Value. - /// The 1st type parameter. - public byte[] Serialize(T value) - { - if (value == null) - { - return Array.Empty(); - } - - using (var ms = new MemoryStream()) - { - new BinaryFormatter().Serialize(ms, value); - return ms.ToArray(); - } - } - - /// - /// Serializes the object. - /// - /// The object. - /// Object. - public ArraySegment SerializeObject(object obj) - { - if (obj == null) - { - return new ArraySegment(Array.Empty()); - } - - using (var ms = new MemoryStream()) - { - new BinaryFormatter().Serialize(ms, obj); - return new ArraySegment(ms.GetBuffer(), 0, (int)ms.Length); - } - } - } -} diff --git a/src/EasyCaching.Memcached/Configurations/MemcachedOptionsExtension.cs b/src/EasyCaching.Memcached/Configurations/MemcachedOptionsExtension.cs index b27ee6a1..c9aa45cc 100644 --- a/src/EasyCaching.Memcached/Configurations/MemcachedOptionsExtension.cs +++ b/src/EasyCaching.Memcached/Configurations/MemcachedOptionsExtension.cs @@ -49,7 +49,6 @@ public void AddServices(IServiceCollection services) services.TryAddSingleton(); services.TryAddSingleton(); - services.TryAddSingleton(); services.AddSingleton(x => { var optionsMon = x.GetRequiredService>(); diff --git a/src/EasyCaching.Redis/Configurations/RedisOptionsExtension.cs b/src/EasyCaching.Redis/Configurations/RedisOptionsExtension.cs index dbe069ea..616142f8 100755 --- a/src/EasyCaching.Redis/Configurations/RedisOptionsExtension.cs +++ b/src/EasyCaching.Redis/Configurations/RedisOptionsExtension.cs @@ -44,8 +44,6 @@ public RedisOptionsExtension(string name, Action configure) public void AddServices(IServiceCollection services) { services.AddOptions(); - - services.TryAddSingleton(); services.Configure(_name, configure); diff --git a/test/EasyCaching.PerformanceTests/SerializerBenchmark.cs b/test/EasyCaching.PerformanceTests/SerializerBenchmark.cs index e1d2a2bd..158ba8da 100644 --- a/test/EasyCaching.PerformanceTests/SerializerBenchmark.cs +++ b/test/EasyCaching.PerformanceTests/SerializerBenchmark.cs @@ -18,7 +18,6 @@ public abstract class SerializerBenchmark private DefaultJsonSerializer _json = new DefaultJsonSerializer("json", new JsonSerializerSettings()); private DefaultMessagePackSerializer _messagepack = new DefaultMessagePackSerializer("msgpack", new EasyCachingMsgPackSerializerOptions { }); private DefaultProtobufSerializer _protobuf = new DefaultProtobufSerializer("proto"); - private DefaultBinaryFormatterSerializer _binary = new DefaultBinaryFormatterSerializer(); protected MyPoco _single; protected List _list; private int _count; @@ -39,12 +38,6 @@ public void Setup() _list = items; } - [Benchmark] - public void BinaryFormatter() - { - Exec(_binary); - } - [Benchmark] public void Json() { diff --git a/test/EasyCaching.UnitTests/CachingTests/MemcachedProviderTest.cs b/test/EasyCaching.UnitTests/CachingTests/MemcachedProviderTest.cs index 6ed87c9e..0d5cf30a 100644 --- a/test/EasyCaching.UnitTests/CachingTests/MemcachedProviderTest.cs +++ b/test/EasyCaching.UnitTests/CachingTests/MemcachedProviderTest.cs @@ -24,8 +24,9 @@ protected override IEasyCachingProvider CreateCachingProvider(Action { options.DBConfig.AddServer("127.0.0.1", 11211); + options.SerializerName = "msg"; additionalSetup(options); - }).UseMemcachedLock()); + }).WithMessagePack("msg").UseMemcachedLock()); services.AddLogging(); IServiceProvider serviceProvider = services.BuildServiceProvider(); return serviceProvider.GetService(); @@ -223,9 +224,18 @@ public MemcachedProviderWithFactoryTest() IServiceCollection services = new ServiceCollection(); services.AddEasyCaching(x => { - x.UseMemcached(options => { options.DBConfig.AddServer("127.0.0.1", 11212); }, SECOND_PROVIDER_NAME) + x.WithMessagePack("msg"); + x.UseMemcached(options => + { + options.DBConfig.AddServer("127.0.0.1", 11212); + options.SerializerName = "msg"; + }, SECOND_PROVIDER_NAME) .UseMemcached( - options => { options.DBConfig.AddServer("127.0.0.1", 11211); }, "MyTest"); + options => + { + options.DBConfig.AddServer("127.0.0.1", 11211); + options.SerializerName = "msg"; + }, "MyTest"); }); services.AddLogging(); IServiceProvider serviceProvider = services.BuildServiceProvider(); @@ -346,6 +356,7 @@ public MemcachedProviderUseEasyCachingTest() services.AddLogging(); services.AddEasyCaching(option => { + option.WithMessagePack("msg"); option.UseMemcached(config => { config.DBConfig = new EasyCachingMemcachedClientOptions @@ -355,6 +366,7 @@ public MemcachedProviderUseEasyCachingTest() new Enyim.Caching.Configuration.Server() {Address = "127.0.0.1", Port = 11212} } }; + config.SerializerName = "msg"; }, EasyCachingConstValue.DefaultMemcachedName); }); @@ -372,7 +384,7 @@ public MemcachedProviderUseEasyCachingWithConfigTest() { IServiceCollection services = new ServiceCollection(); - var appsettings = " { \"easycaching\": { \"memcached\": { \"MaxRdSecond\": 600, \"dbconfig\": { \"Servers\": [ { \"Address\": \"127.0.0.1\", \"Port\": 11211 } ] } } }}"; + var appsettings = " {\"easycaching\":{\"memcached\":{\"MaxRdSecond\":600,\"dbconfig\":{\"Servers\":[{\"Address\":\"127.0.0.1\",\"Port\":11211}]},\"SerializerName\":\"msg\"}}} "; var path = TestHelpers.CreateTempFile(appsettings); var directory = Path.GetDirectoryName(path); var fileName = Path.GetFileName(path); @@ -382,7 +394,11 @@ public MemcachedProviderUseEasyCachingWithConfigTest() configurationBuilder.AddJsonFile(fileName); var config = configurationBuilder.Build(); services.AddLogging(); - services.AddEasyCaching(option => { option.UseMemcached(config, "mName"); }); + services.AddEasyCaching(option => + { + option.WithMessagePack("msg"); + option.UseMemcached(config, "mName"); + }); IServiceProvider serviceProvider = services.BuildServiceProvider(); _provider = serviceProvider.GetService(); @@ -407,6 +423,7 @@ public async void NoConnectionTest() services.AddLogging(); services.AddEasyCaching(option => { + option.WithMessagePack("msg"); option.UseMemcached(config => { config.DBConfig = new EasyCachingMemcachedClientOptions @@ -422,6 +439,7 @@ public async void NoConnectionTest() ReceiveTimeout = TimeSpan.FromSeconds(2), } }; + config.SerializerName = "msg"; }, EasyCachingConstValue.DefaultMemcachedName); }); diff --git a/test/EasyCaching.UnitTests/DistributedLock/MemcachedLockTest.cs b/test/EasyCaching.UnitTests/DistributedLock/MemcachedLockTest.cs index 75e56385..4bc9b589 100644 --- a/test/EasyCaching.UnitTests/DistributedLock/MemcachedLockTest.cs +++ b/test/EasyCaching.UnitTests/DistributedLock/MemcachedLockTest.cs @@ -12,8 +12,12 @@ public class MemcachedLockTest : DistributedLockTest { private static readonly IDistributedLockFactory Factory = new ServiceCollection() .AddLogging() - .AddEasyCaching(option => option.UseMemcached(config => + .AddEasyCaching(option => + { + option.WithMessagePack("msg"); + option.UseMemcached(config => { + config.SerializerName = "msg"; config.DBConfig = new EasyCachingMemcachedClientOptions { Servers = @@ -21,8 +25,9 @@ public class MemcachedLockTest : DistributedLockTest new Server { Address = "127.0.0.1", Port = 11211 } } }; - }) - .UseMemcachedLock()) + }); + option.UseMemcachedLock(); + }) .BuildServiceProvider() .GetService(); diff --git a/test/EasyCaching.UnitTests/SerializerTests/BinaryFormatterSerializerTest.cs b/test/EasyCaching.UnitTests/SerializerTests/BinaryFormatterSerializerTest.cs deleted file mode 100644 index 829b5878..00000000 --- a/test/EasyCaching.UnitTests/SerializerTests/BinaryFormatterSerializerTest.cs +++ /dev/null @@ -1,12 +0,0 @@ -namespace EasyCaching.UnitTests -{ - using EasyCaching.Core.Serialization; - - public class BinaryFormatterSerializerTest : BaseSerializerTest - { - public BinaryFormatterSerializerTest() - { - _serializer = new DefaultBinaryFormatterSerializer(); - } - } -} \ No newline at end of file