From fccc3fc8b996be7b0e223b98543acb848a89d391 Mon Sep 17 00:00:00 2001 From: 28810 <28810@YEXIANGQIN> Date: Fri, 15 Mar 2019 11:15:52 +0800 Subject: [PATCH] add test --- Examples/repository_01/Startup.cs | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/Examples/repository_01/Startup.cs b/Examples/repository_01/Startup.cs index e4d47c1d..13b97c87 100644 --- a/Examples/repository_01/Startup.cs +++ b/Examples/repository_01/Startup.cs @@ -11,6 +11,7 @@ using restful.Entitys; using Swashbuckle.AspNetCore.Swagger; using System; using System.Diagnostics; +using System.Linq; using System.Text; namespace repository_01 { @@ -54,7 +55,6 @@ namespace repository_01 { public IServiceProvider ConfigureServices(IServiceCollection services) { - services.AddSingleton(Fsql); //services.AddTransient(s => s.) services.AddMvc(); @@ -66,10 +66,34 @@ namespace repository_01 { //options.IncludeXmlComments(xmlPath); }); + services.AddSingleton(Fsql); + //var baseType = typeof(IRepository); + //var freeTypes = baseType.Assembly.GetTypes().Where(t => baseType.IsAssignableFrom(t)); + //foreach (var type in freeTypes) { + // if ((type.IsInterface || type.IsAbstract) && type.IsGenericType) { + // if (type.GenericTypeArguments.Length == 1) + // services.AddScoped(type, sp => { + // return Activator.CreateInstance(typeof(GuidRepository<>).MakeGenericType(type.GenericTypeArguments[0]), sp.GetService()); + // }); + // else + // services.AddScoped(type, sp => { + // return Activator.CreateInstance(typeof(DefaultRepository<,>).MakeGenericType(type.GenericTypeArguments[0], type.GenericTypeArguments[1]), sp.GetService()); + // }); + // continue; + // } + // services.AddScoped(type); + //} + + //var types = GetType().Assembly.GetTypes().Where(t => baseType.IsAssignableFrom(t) && !t.IsAbstract); + //foreach (var type in types) { + // services.AddScoped(type); + //} + + var builder = new ContainerBuilder(); builder.RegisterFreeRepository( - filter => filter.Apply("test", a => a.Title == DateTime.Now.ToString() + System.Threading.Thread.CurrentThread.ManagedThreadId), + filter => filter.Apply("test", a => a.Title == DateTime.Now.ToString() + System.Threading.Thread.CurrentThread.ManagedThreadId), this.GetType().Assembly );