diff --git a/Blog.Core.Api/Controllers/BlogController.cs b/Blog.Core.Api/Controllers/BlogController.cs index 1e0732a..f36249f 100644 --- a/Blog.Core.Api/Controllers/BlogController.cs +++ b/Blog.Core.Api/Controllers/BlogController.cs @@ -22,9 +22,9 @@ namespace Blog.Core.Controllers /// [Produces("application/json")] [Route("api/Blog")] - public class BlogController : Controller + public class BlogController : ControllerBase { - readonly IBlogArticleServices _blogArticleServices; + public IBlogArticleServices _blogArticleServices { get; set; } private readonly ILogger _logger; /// @@ -34,7 +34,6 @@ namespace Blog.Core.Controllers /// public BlogController(IBlogArticleServices blogArticleServices, ILogger logger) { - _blogArticleServices = blogArticleServices; _logger = logger; } @@ -57,6 +56,8 @@ namespace Blog.Core.Controllers } Expression> whereExpression = a => (a.bcategory == bcategory && a.IsDeleted == false) && ((a.btitle != null && a.btitle.Contains(key)) || (a.bcontent != null && a.bcontent.Contains(key))); + + var testId = await _blogArticleServices.GetBlogDetails(1); var pageModelBlog = await _blogArticleServices.QueryPage(whereExpression, page, intPageSize, " bID desc "); diff --git a/Blog.Core.Api/Filter/AutofacPropertityModuleReg.cs b/Blog.Core.Api/Filter/AutofacPropertityModuleReg.cs new file mode 100644 index 0000000..9691178 --- /dev/null +++ b/Blog.Core.Api/Filter/AutofacPropertityModuleReg.cs @@ -0,0 +1,17 @@ +using Autofac; +using Microsoft.AspNetCore.Mvc; + +namespace Blog.Core.Extensions +{ + public class AutofacPropertityModuleReg : Autofac.Module + { + protected override void Load(ContainerBuilder builder) + { + var controllerBaseType = typeof(ControllerBase); + builder.RegisterAssemblyTypes(typeof(Program).Assembly) + .Where(t => controllerBaseType.IsAssignableFrom(t) && t != controllerBaseType) + .PropertiesAutowired(); + + } + } +} diff --git a/Blog.Core.Api/Startup.cs b/Blog.Core.Api/Startup.cs index a1a7e70..f75a7df 100644 --- a/Blog.Core.Api/Startup.cs +++ b/Blog.Core.Api/Startup.cs @@ -11,9 +11,11 @@ using Blog.Core.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.Controllers; using Microsoft.AspNetCore.Server.Kestrel.Core; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Hosting; using Newtonsoft.Json; using Newtonsoft.Json.Serialization; @@ -116,6 +118,8 @@ namespace Blog.Core options.SerializerSettings.DateTimeZoneHandling = DateTimeZoneHandling.Local; }); + services.Replace(ServiceDescriptor.Transient()); + _services = services; //支持编码大全 例如:支持 System.Text.Encoding.GetEncoding("GB2312") System.Text.Encoding.GetEncoding("GB18030") Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); @@ -125,6 +129,7 @@ namespace Blog.Core public void ConfigureContainer(ContainerBuilder builder) { builder.RegisterModule(new AutofacModuleRegister()); + builder.RegisterModule(); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. diff --git a/Blog.Core.Extensions/ServiceExtensions/AutofacModuleRegister.cs b/Blog.Core.Extensions/ServiceExtensions/AutofacModuleRegister.cs index 888afc7..5cd4ba6 100644 --- a/Blog.Core.Extensions/ServiceExtensions/AutofacModuleRegister.cs +++ b/Blog.Core.Extensions/ServiceExtensions/AutofacModuleRegister.cs @@ -66,6 +66,7 @@ namespace Blog.Core.Extensions builder.RegisterAssemblyTypes(assemblysServices) .AsImplementedInterfaces() .InstancePerDependency() + .PropertiesAutowired() .EnableInterfaceInterceptors()//引用Autofac.Extras.DynamicProxy; .InterceptedBy(cacheType.ToArray());//允许将拦截器服务的列表分配给注册。 @@ -73,6 +74,7 @@ namespace Blog.Core.Extensions var assemblysRepository = Assembly.LoadFrom(repositoryDllFile); builder.RegisterAssemblyTypes(assemblysRepository) .AsImplementedInterfaces() + .PropertiesAutowired() .InstancePerDependency(); #endregion diff --git a/Blog.Core.Services/BASE/BaseServices.cs b/Blog.Core.Services/BASE/BaseServices.cs index 6187088..ebde1bf 100644 --- a/Blog.Core.Services/BASE/BaseServices.cs +++ b/Blog.Core.Services/BASE/BaseServices.cs @@ -13,7 +13,7 @@ namespace Blog.Core.Services.BASE public class BaseServices : IBaseServices where TEntity : class, new() { //public IBaseRepository baseDal = new BaseRepository(); - public IBaseRepository BaseDal;//通过在子类的构造函数中注入,这里是基类,不用构造函数 + public IBaseRepository BaseDal { get; set; }//通过在子类的构造函数中注入,这里是基类,不用构造函数 public async Task QueryById(object objId) { diff --git a/Blog.Core.Services/BlogArticleServices.cs b/Blog.Core.Services/BlogArticleServices.cs index 5b9aa6e..512f4fb 100644 --- a/Blog.Core.Services/BlogArticleServices.cs +++ b/Blog.Core.Services/BlogArticleServices.cs @@ -13,12 +13,10 @@ namespace Blog.Core.Services { public class BlogArticleServices : BaseServices, IBlogArticleServices { - IBaseRepository _dal; + public IBaseRepository _dal { get; set; } IMapper _mapper; - public BlogArticleServices(IBaseRepository dal, IMapper mapper) + public BlogArticleServices(IMapper mapper) { - this._dal = dal; - base.BaseDal = dal; this._mapper = mapper; } ///