ASP.NET MVC5+EF6+EasyUI 后台管理系统(64)-补充WebApi与Unity注入-配置文件

简介:

系列目录

上一篇演示了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

本文转自ymnets博客园博客,原文链接:http://www.cnblogs.com/ymnets/p/5754744.html,如需转载请自行联系原作者
相关文章
|
安全 数据安全/隐私保护
EasyUI+JavaWeb奖助学金管理系统[20]-项目总结与展望
本文目录 1. 总结 1.1 管理员新增奖助学金项目 1.2 学生发起申请 1.3 班主任审批 1.4 学院管理员审批 1.5 学校管理员审批 1.6 学生查看申请结果 2. 展望
143 0
EasyUI+JavaWeb奖助学金管理系统[20]-项目总结与展望
|
前端开发
EasyUI+JavaWeb奖助学金管理系统[19]-奖助学金审批功能开发
本文目录 1. 本章任务 2. 查看当前待审批的申请 3. 审批功能的开发 4. 总结
175 0
|
存储 数据库
EasyUI+JavaWeb奖助学金管理系统[18]-奖助学金申请功能开发
本文目录 1. 本章任务 2. 数据库表结构分析 3. 学生查看申请记录功能开发 4. 学生发起申请功能开发 5. 总结
243 0
|
项目管理 数据库 数据安全/隐私保护
EasyUI+JavaWeb奖助学金管理系统[17]-问题反馈功能开发
本文目录 1. 本章任务 2. 添加菜单 3. 学生问题反馈开发 4. 管理员问题答复功能开发 5. 总结
154 0
|
项目管理 数据安全/隐私保护
EasyUI+JavaWeb奖助学金管理系统[16]-权限管理功能的开发
本文目录 1. 本章任务 2. 页面布局 3. 加载角色对应的菜单 4. 提交角色菜单信息 5. 小结
131 0
EasyUI+JavaWeb奖助学金管理系统[16]-权限管理功能的开发
|
存储 项目管理 数据库
EasyUI+JavaWeb奖助学金管理系统[15]-人员管理功能实现
本文目录 1. 本章任务 2. 人员分页浏览的实现 3. 人员新增功能的实现 3. 人员编辑功能的实现 4. 人员删除功能的实现 5. 本章完整源代码 5.1 userManager.html 5.2 CoreServlet.java 5.3 UserDao.java 6. 总结
154 0
|
前端开发
EasyUI+JavaWeb奖助学金管理系统[14]-机构新增、编辑、删除的实现
本文目录 1. 本章任务 2. 新增功能的实现 2.1 添加新增弹窗 2.2 页面初始化时加载上级机构列表 2.3 后端提供获取机构列表方法 2.4 点击保存后将内容提交 2.5 后端处理新增保存请求 2.6 测试 3. 编辑功能的实现 4. 删除功能的实现 5. 总结
135 0
EasyUI+JavaWeb奖助学金管理系统[14]-机构新增、编辑、删除的实现
|
项目管理
EasyUI+JavaWeb奖助学金管理系统[13]-机构分页浏览功能实现
本文目录 1. 本章任务 2. 新建页面 3. 添加数据表格 4. 封装分页查询方法 5. 测试
115 0
EasyUI+JavaWeb奖助学金管理系统[13]-机构分页浏览功能实现
|
存储 前端开发 JavaScript
EasyUI+JavaWeb奖助学金管理系统[12]-EasyUI中文显示与格式化
本文目录 1. 本章任务 2. EasyUI中文显示 3. 单元格格式化 4. 测试
155 0
EasyUI+JavaWeb奖助学金管理系统[12]-EasyUI中文显示与格式化
|
JavaScript
EasyUI+JavaWeb奖助学金管理系统[11]-编辑与删除项目的实现
本文目录 1. 本章任务 2. 添加编辑按钮 3. 添加编辑弹窗 4. 点击编辑后弹窗加载当前信息 5. 点击保存后提交表单 6. 后端执行编辑保存 7. 测试
EasyUI+JavaWeb奖助学金管理系统[11]-编辑与删除项目的实现