using Microsoft.Extensions.Caching.Memory;
|
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.Options;
|
using System;
|
using WIDESEA_Core.Caches;
|
|
namespace WIDESEA_Core.Extensions
|
{
|
/// <summary>
|
/// Memory缓存 启动服务
|
/// </summary>
|
public static class MemoryCacheSetup
|
{
|
public static void AddMemoryCacheSetup(this IServiceCollection services)
|
{
|
if (services == null) throw new ArgumentNullException(nameof(services));
|
|
services.AddScoped<ICaching, Caching>();
|
services.AddSingleton<IMemoryCache>(factory =>
|
{
|
var value = factory.GetRequiredService<IOptions<MemoryCacheOptions>>();
|
var cache = new MemoryCache(value);
|
return cache;
|
});
|
}
|
}
|
}
|