Home

Awesome

Build Status

Introduction

A redis & memory cache middleware using AspectCore-Framework & csredis.

How to use

using AspectCore.Extensions.DependencyInjection;// import this namespace
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;

public class Program
{
    public static void Main(string[] args)
    {
        CreateHostBuilder(args).Build().Run();
    }

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
            })
            // for aspcectcore
            .UseServiceProviderFactory(new AspectCoreServiceProviderFactory())
        ;
}
        public IServiceProvider ConfigureServices(IServiceCollection services)
        {
            
            services.AddAspectCoreMemoryCache();
        
            services.AddAspectCoreRedisCache("your redis connetion string");
            
            return services.BuildServiceProvider();
        }
    public interface ISysMenuRepository:IRepository<SysMenu, string>
    {
        [Cached(CacheKey = "Redis_Cache_SysMenu", Expiration = 5)]
        IList<SysMenu> GetMenusByCache(Expression<Func<SysMenu, bool>> where);
    }
    public class SysMenuRepository : BaseRepository<SysMenu, string>, ISysMenuRepository
    {
        public IList<SysMenu> GetMenusByCache(Expression<Func<SysMenu, bool>> @where)
        {
            return DbContext.Get(where, true).ToList();
        }
    }