分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

MVC autofac 属性注入

发布时间:2023-09-19 06:15责任编辑:蔡小小关键词:MVC

Global文件

public class MvcApplication : System.Web.HttpApplication ???{ ???????private static IContainer Container { get; set; } ???????protected void Application_Start() ???????{ ???????????AreaRegistration.RegisterAllAreas(); ???????????FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); ???????????RouteConfig.RegisterRoutes(RouteTable.Routes); ???????????BundleConfig.RegisterBundles(BundleTable.Bundles); ???????????var builder = new ContainerBuilder(); ???????????//根据名称约定(服务层的接口和实现均以Contract结尾),实现服务接口和服务实现的依赖 ???????????builder.RegisterAssemblyTypes(Assembly.Load("BLOG.IBLL"), Assembly.Load("BLOG.BLL")).Where(t => t.Name.EndsWith("Contract")).AsImplementedInterfaces().PropertiesAutowired().InstancePerDependency(); ???????????// 根据名称约定(数据访问层的接口和实现均以Repository结尾),实现数据访问接口和数据访问实现的依赖 ???????????builder.RegisterAssemblyTypes(Assembly.Load("BLOG.IDAL"), Assembly.Load("BLOG.DAL")).Where(t => t.Name.EndsWith("Repository")).AsImplementedInterfaces().PropertiesAutowired().InstancePerDependency(); ???????????builder.RegisterControllers(Assembly.GetExecutingAssembly()).PropertiesAutowired(); ???????????Container = builder.Build(); ???????????DependencyResolver.SetResolver(new AutofacDependencyResolver(Container)); ???????} ???}

控制器

public class DefaultController : Controller ???{ ???????//属性自动注入 ???????public IProvinceContract ProvinceContract { get; set; } ???????// GET: Default ???????public ActionResult Index() ???????{ ???????????return View(); ???????} ???????public ActionResult GetProvinceList() ???????{ ???????????var list = ProvinceContract.GetList(p => p.Id > 0); ???????????return Json(list); ???????} ???}
PropertiesAutowired 属性注入

IBLL

public interface IProvinceContract ???{ ???????/// <summary> ???????/// 获取列表 ???????/// </summary> ???????/// <param name="where"></param> ???????/// <returns></returns> ???????IQueryable<Province> GetList(Expression<Func<Province, bool>> where); ???}

BLL

 public class ProvinceContrator: IProvinceContract ???{ ???????//属性自动注入 ???????public IProvinceRepository ProvinceRepository { get; set; } ???????public IQueryable<Province> GetList(Expression<Func<Province, bool>> where) ???????{ ???????????return ProvinceRepository.GetList(where); ???????} ???}

MVC autofac 属性注入

原文地址:https://www.cnblogs.com/xiaonangua/p/10783151.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved