mirror of
https://github.com/anjoy8/Blog.Core.git
synced 2024-09-20 23:48:27 +08:00
try use PropertiesAutowired in project
尝试使用属性依赖注入,例子参考BlogArticelController
This commit is contained in:
parent
057345b518
commit
74aa72b0a2
|
@ -22,9 +22,9 @@ namespace Blog.Core.Controllers
|
|||
/// </summary>
|
||||
[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<BlogController> _logger;
|
||||
|
||||
/// <summary>
|
||||
|
@ -34,7 +34,6 @@ namespace Blog.Core.Controllers
|
|||
/// <param name="logger"></param>
|
||||
public BlogController(IBlogArticleServices blogArticleServices, ILogger<BlogController> logger)
|
||||
{
|
||||
_blogArticleServices = blogArticleServices;
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
|
@ -57,6 +56,8 @@ namespace Blog.Core.Controllers
|
|||
}
|
||||
|
||||
Expression<Func<BlogArticle, bool>> 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 ");
|
||||
|
||||
|
|
17
Blog.Core.Api/Filter/AutofacPropertityModuleReg.cs
Normal file
17
Blog.Core.Api/Filter/AutofacPropertityModuleReg.cs
Normal file
|
@ -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();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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<IControllerActivator, ServiceBasedControllerActivator>());
|
||||
|
||||
_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<AutofacPropertityModuleReg>();
|
||||
}
|
||||
|
||||
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -13,7 +13,7 @@ namespace Blog.Core.Services.BASE
|
|||
public class BaseServices<TEntity> : IBaseServices<TEntity> where TEntity : class, new()
|
||||
{
|
||||
//public IBaseRepository<TEntity> baseDal = new BaseRepository<TEntity>();
|
||||
public IBaseRepository<TEntity> BaseDal;//通过在子类的构造函数中注入,这里是基类,不用构造函数
|
||||
public IBaseRepository<TEntity> BaseDal { get; set; }//通过在子类的构造函数中注入,这里是基类,不用构造函数
|
||||
|
||||
public async Task<TEntity> QueryById(object objId)
|
||||
{
|
||||
|
|
|
@ -13,12 +13,10 @@ namespace Blog.Core.Services
|
|||
{
|
||||
public class BlogArticleServices : BaseServices<BlogArticle>, IBlogArticleServices
|
||||
{
|
||||
IBaseRepository<BlogArticle> _dal;
|
||||
public IBaseRepository<BlogArticle> _dal { get; set; }
|
||||
IMapper _mapper;
|
||||
public BlogArticleServices(IBaseRepository<BlogArticle> dal, IMapper mapper)
|
||||
public BlogArticleServices(IMapper mapper)
|
||||
{
|
||||
this._dal = dal;
|
||||
base.BaseDal = dal;
|
||||
this._mapper = mapper;
|
||||
}
|
||||
/// <summary>
|
||||
|
|
Loading…
Reference in New Issue
Block a user