ASP.NET MVC5+EF6+EasyUI 后台管理系统(64)-补充WebApi与Unity注入-配置文件
来源:互联网 发布:有哪些好的知乎话题 编辑:程序博客网 时间:2024/05/10 06:51
系列目录
上一篇演示了WebApi利用Unity注入
很多人问我如何用配置文件来配置注入,本节演示如何利用配置文件来注入,道理是一样的,跳转到上一节下载源码一起来动手!
1.打开源码定位到文件DependencyRegisterType.cs
红框部分是必须的,接口和实现的命名空间,程序集,类,所以我们的配置文件也需要拥有以上属性
2.在Apps.Web新建一个XML文件
并添加以下代码:
<?xml version="1.0" encoding="utf-8"?><configuration> <configSections> <section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration"/> </configSections> <unity> <alias alias="" type="" /> <namespace name="Apps.IBLL" /> <namespace name="Apps.BLL" /> <namespace name="Apps.IDAL" /> <namespace name="Apps.DAL" /> <assembly name="Apps.IBLL" /> <assembly name="Apps.BLL" /> <assembly name="Apps.IDAL" /> <assembly name="Apps.DAL" /> <container> <register type="ISysPersonBLL" mapTo="SysPersonBLL" /> <register type="ISysPersonRepository" mapTo="SysPersonRepository" /> </container> </unity></configuration>
其实alias节点啥都不写也是没有关系的,只是作为一个别名使用,我们下面全是使用真实名称
好了,准备调用!
3.修改原来Apps.Core下的UnityConfig.cs为
using Microsoft.Practices.Unity;using Microsoft.Practices.Unity.Configuration;using System.Configuration;using System.Web;using System.Web.Http;using System.Web.Mvc;using Unity.WebApi;namespace Apps.Core{ public static class UnityConfig { public static void RegisterComponents() { var container = BuildUnityContainer(); DependencyResolver.SetResolver(new UnityDependencyResolver(container)); GlobalConfiguration.Configuration.DependencyResolver = new Unity.WebApi.UnityDependencyResolver(container); } /// <summary> /// Builds the unity container. /// </summary> /// <returns></returns> private static IUnityContainer BuildUnityContainer() { var container = new UnityContainer(); var fileMap = new ExeConfigurationFileMap { ExeConfigFilename = HttpContext.Current.Server.MapPath("~/Unity.Config") }; Configuration configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None); var unitySection = (UnityConfigurationSection)configuration.GetSection("unity"); container.LoadConfiguration(unitySection); return container; } }}
4.最后在Web网站Apps.Web的Global添加调用代码
UnityConfig.RegisterComponents();
5.运行代码
控制器代码:
public class Default1Controller : BaseController { [Dependency] public ISysPersonBLL m_BLL { get; set; } public ActionResult Index() { ViewBag.Value = m_BLL.GetValue(); return View(); } }
业务层代码:
public class SysPersonBLL:ISysPersonBLL { [Dependency] public ISysPersonRepository m_Rep { get; set; } public string GetValue() { return m_Rep.GetValue(); } }
数据访问层代码:
public partial class SysPersonRepository { public string GetValue() { return "直接到DAL"; } }
最后界面展示:
总结:
正确利用注入方式获得了数据,其实配置形式,更加麻烦,每个站点都要存在一个XML文件。而且配置容易出错,出现虽然有提示,但是如果一旦数量太多,容易出错!
代码下载:http://yunpan.cn/c6XDwfaCY9sff 访问密码 8d0e
阅读全文
0 0
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(64)-补充WebApi与Unity注入-配置文件
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(63)-WebApi与Unity注入
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(6)-Unity 依赖注入
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(65)-MVC WebApi 用户验证 (1)
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(66)-MVC WebApi 用户验证 (2)
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(47)-工作流设计-补充
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(7)-MVC与EasyUI DataGrid
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(67)-MVC与ECharts
- ASP.NET MVC5+EF6+EasyUI 后台管理系统
- 构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(56)-插件---单文件上传与easyui使用fancybox
- 构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(51)-系统升级
- 构建ASP.NET MVC5+EF6+EasyUI 1.5+Unity4.x注入的后台管理系统(62)-EF链接串加密
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(56)-插件---单文件上传与easyui使用fancybox
- [置顶]构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(1)-前言与目录(持续更新中...)
- 构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(1)-前言与目录(持续更新中...)
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(50)-Easyui 扁平化皮肤
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(52)-美化EasyUI皮肤和图标
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(83)-Easyui Datagrid 行内编辑扩展
- 【福利】3980元的web前端视频教程限量领取!!!
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(67)-MVC与ECharts
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(65)-MVC WebApi 用户验证 (1)
- 2-2 Time类的定义
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(66)-MVC WebApi 用户验证 (2)
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(64)-补充WebApi与Unity注入-配置文件
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(68)-微信公众平台开发- 资源环境准备
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(69)-微信公众平台开发-功能概述
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(70)-微信公众平台开发-成为开发者
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(71)-微信公众平台开发-公众号管理
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(72)-微信公众平台开发-消息处理
- CSS中的URL_CSS中的URI
- 数据库三大范式
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(73)-微信公众平台开发-消息管理