0
0
فهرست منبع

添加泛型注入

zhontai 3 سال پیش
والد
کامیت
22daac49c7
2فایلهای تغییر یافته به همراه9 افزوده شده و 5 حذف شده
  1. 4 4
      Admin.Core.Repository/Base/RepositoryBase.cs
  2. 5 1
      Admin.Core/Startup.cs

+ 4 - 4
Admin.Core.Repository/Base/RepositoryBase.cs

@@ -6,11 +6,11 @@ using System.Threading.Tasks;
 
 namespace Admin.Core.Repository
 {
-    public abstract class RepositoryBase<TEntity, TKey> : BaseRepository<TEntity, TKey>, IRepositoryBase<TEntity, TKey> where TEntity : class, new()
+    public class RepositoryBase<TEntity, TKey> : BaseRepository<TEntity, TKey>, IRepositoryBase<TEntity, TKey> where TEntity : class, new()
     {
         public IUser User { get; set; }
 
-        protected RepositoryBase(IFreeSql freeSql) : base(freeSql, null, null)
+        public RepositoryBase(IFreeSql freeSql) : base(freeSql, null, null)
         {
         }
 
@@ -73,9 +73,9 @@ namespace Admin.Core.Repository
         }
     }
 
-    public abstract class RepositoryBase<TEntity> : RepositoryBase<TEntity, long> where TEntity : class, new()
+    public class RepositoryBase<TEntity> : RepositoryBase<TEntity, long>, IRepositoryBase<TEntity> where TEntity : class, new()
     {
-        protected RepositoryBase(MyUnitOfWorkManager muowm) : base(muowm.Orm)
+        public RepositoryBase(MyUnitOfWorkManager muowm) : base(muowm.Orm)
         {
             muowm.Binding(this);
         }

+ 5 - 1
Admin.Core/Startup.cs

@@ -13,6 +13,7 @@ using Admin.Core.Enums;
 using Admin.Core.Extensions;
 using Admin.Core.Filters;
 using Admin.Core.Logs;
+using Admin.Core.Repository;
 using AspNetCoreRateLimit;
 using Autofac;
 using Autofac.Extras.DynamicProxy;
@@ -392,13 +393,16 @@ namespace Admin.Core
                 #endregion Aop
 
                 #region Repository
-
                 var assemblyRepository = Assembly.Load("Admin.Core.Repository");
                 builder.RegisterAssemblyTypes(assemblyRepository)
                 .AsImplementedInterfaces()
                 .InstancePerLifetimeScope()
                 .PropertiesAutowired();// 属性注入
 
+
+                //泛型注入
+                builder.RegisterGeneric(typeof(RepositoryBase<>)).As(typeof(IRepositoryBase<>)).InstancePerLifetimeScope();
+                builder.RegisterGeneric(typeof(RepositoryBase<,>)).As(typeof(IRepositoryBase<,>)).InstancePerLifetimeScope();
                 #endregion Repository
 
                 #region Service