6 implementations of IHybridCacheSerializer
Microsoft.Extensions.Caching.Hybrid (3)
Internal\DefaultJsonSerializerFactory.cs (1)
138internal sealed class DefaultJsonSerializer<T> : IHybridCacheSerializer<T>
Internal\InbuiltTypeSerializer.cs (2)
15internal sealed class InbuiltTypeSerializer : IHybridCacheSerializer<string>, IHybridCacheSerializer<byte[]>
Microsoft.Extensions.Caching.Hybrid.Tests (3)
ServiceConstructionTests.cs (1)
317private class CustomerSerializer : IHybridCacheSerializer<Customer>
SizeTests.cs (2)
280public sealed class Serializer : IHybridCacheSerializer<MutablePoco> 323public sealed class Serializer : IHybridCacheSerializer<ImmutablePoco>
43 references to IHybridCacheSerializer
Microsoft.Extensions.Caching.Abstractions (2)
Hybrid\IHybridCacheSerializerFactory.cs (2)
9/// Factory provider for per-type <see cref="IHybridCacheSerializer{T}"/> instances. 19bool TryCreateSerializer<T>([NotNullWhen(true)] out IHybridCacheSerializer<T>? serializer);
Microsoft.Extensions.Caching.Hybrid (29)
HybridCacheBuilderExtensions.cs (4)
20public static IHybridCacheBuilder AddSerializer<T>(this IHybridCacheBuilder builder, IHybridCacheSerializer<T> serializer) 22_ = Throw.IfNull(builder).Services.AddSingleton<IHybridCacheSerializer<T>>(serializer); 34where TImplementation : class, IHybridCacheSerializer<T> 36_ = Throw.IfNull(builder).Services.AddSingleton<IHybridCacheSerializer<T>, TImplementation>();
HybridCacheServiceExtensions.cs (2)
39services.TryAddSingleton<IHybridCacheSerializer<string>>(InbuiltTypeSerializer.Instance); 40services.TryAddSingleton<IHybridCacheSerializer<byte[]>>(InbuiltTypeSerializer.Instance);
Internal\DefaultHybridCache.MutableCacheItem.cs (3)
13private IHybridCacheSerializer<T>? _serializer; 26public void SetValue(ref BufferChunk buffer, IHybridCacheSerializer<T> serializer) 45IHybridCacheSerializer<T>? serializer = _serializer;
Internal\DefaultHybridCache.Serialization.cs (8)
22internal IHybridCacheSerializer<T> GetSerializer<T>() 25? Unsafe.As<IHybridCacheSerializer<T>>(serializer) : ResolveAndAddSerializer(this); 27static IHybridCacheSerializer<T> ResolveAndAddSerializer(DefaultHybridCache @this) 31IHybridCacheSerializer<T>? serializer = @this._services.GetService<IHybridCacheSerializer<T>>(); 36if (factory.TryCreateSerializer<T>(out IHybridCacheSerializer<T>? current)) 46throw new InvalidOperationException($"No {nameof(IHybridCacheSerializer<T>)} configured for type '{typeof(T).Name}'"); 56private bool TrySerialize<T>(T value, out BufferChunk buffer, out IHybridCacheSerializer<T>? serializer)
Internal\DefaultHybridCache.StampedeStateT.cs (3)
348if (Cache.TrySerialize(newValue, out BufferChunk buffer, out IHybridCacheSerializer<T>? serializer)) 449IHybridCacheSerializer<T> serializer = Cache.GetSerializer<T>(); 494private void SetResultPreSerialized(T value, ref BufferChunk buffer, IHybridCacheSerializer<T>? serializer)
Internal\DefaultJsonSerializerFactory.cs (5)
28Options = serviceProvider.GetKeyedService<JsonSerializerOptions>(typeof(IHybridCacheSerializer<>)) ?? SystemDefaultJsonOptions; 31public bool TryCreateSerializer<T>([NotNullWhen(true)] out IHybridCacheSerializer<T>? serializer) 36JsonSerializerOptions options = _serviceProvider.GetKeyedService<JsonSerializerOptions>(typeof(IHybridCacheSerializer<T>)) ?? Options; 149T IHybridCacheSerializer<T>.Deserialize(ReadOnlySequence<byte> source) 156void IHybridCacheSerializer<T>.Serialize(T value, IBufferWriter<byte> target)
Internal\InbuiltTypeSerializer.cs (4)
19string IHybridCacheSerializer<string>.Deserialize(ReadOnlySequence<byte> source) 22void IHybridCacheSerializer<string>.Serialize(string value, IBufferWriter<byte> target) 25byte[] IHybridCacheSerializer<byte[]>.Deserialize(ReadOnlySequence<byte> source) 28void IHybridCacheSerializer<byte[]>.Serialize(byte[] value, IBufferWriter<byte> target)
Microsoft.Extensions.Caching.Hybrid.Tests (12)
BufferReleaseTests.cs (3)
127IHybridCacheSerializer<Customer> serializer = cache.GetSerializer<Customer>(); 190IHybridCacheSerializer<Customer> serializer = cache.GetSerializer<Customer>(); 263Assert.True(new DefaultJsonSerializerFactory(services).TryCreateSerializer<Customer>(out var serializer));
SerializerTests.cs (5)
17IHybridCacheSerializer<string> serializer = InbuiltTypeSerializer.Instance; 31IHybridCacheSerializer<byte[]> serializer = InbuiltTypeSerializer.Instance; 246services.AddKeyedSingleton<JsonSerializerOptions>(typeof(IHybridCacheSerializer<>), globalOptions); 252services.AddKeyedSingleton<JsonSerializerOptions>(typeof(IHybridCacheSerializer<T>), perTypeOptions); 268var serializer = cache.GetSerializer<T>();
ServiceConstructionTests.cs (4)
319Customer IHybridCacheSerializer<Customer>.Deserialize(ReadOnlySequence<byte> source) => throw new NotSupportedException(); 320void IHybridCacheSerializer<Customer>.Serialize(Customer value, IBufferWriter<byte> target) => throw new NotSupportedException(); 325bool IHybridCacheSerializerFactory.TryCreateSerializer<T>(out IHybridCacheSerializer<T>? serializer) 329serializer = (IHybridCacheSerializer<T>)new CustomerSerializer();