博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET MVC5+EF6+EasyUI 后台管理系统(64)-补充WebApi与Unity注入-配置文件
阅读量:6259 次
发布时间:2019-06-22

本文共 2611 字,大约阅读时间需要 8 分钟。

很多人问我如何用配置文件来配置注入,本节演示如何利用配置文件来注入,道理是一样的,跳转到上一节下载源码一起来动手!

1.打开源码定位到文件DependencyRegisterType.cs

红框部分是必须的,接口和实现的命名空间,程序集,类,所以我们的配置文件也需要拥有以上属性

2.在Apps.Web新建一个XML文件

并添加以下代码:

 

其实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);        }        ///         /// Builds the unity container.        ///         /// 
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,如需转载请自行联系原作者
你可能感兴趣的文章
Python练习(day7)
查看>>
网络工程师笔试题总结
查看>>
飞舞的蝴蝶
查看>>
Async Performance: Understanding the Costs of Async and Await
查看>>
POJ2771_Guardian of Decency(二分图/最大独立集=N-最大匹配)
查看>>
Cocos2d-x之MenuItem
查看>>
远程共享文件夹
查看>>
[转] C/C++中printf和C++中cout的输出格式
查看>>
swift 如何实现点击view后显示灰色背景
查看>>
【Android】3.9 覆盖物功能
查看>>
MySQL也有潜规则 – Select 语句不加 Order By 如何排序?
查看>>
搭建SolrCloud的详细步骤
查看>>
svn的安装与使用
查看>>
基于Linux下Iptables限制BT下载的研究
查看>>
Android对话框-中篇-之建立自己的对话框
查看>>
华为交换机VRP用户界面配置及Telnet登录实验
查看>>
作为一个程序员我最大的遗憾
查看>>
《SolidWorks 2012中文版从入门到精通》一6.5 综合实例——斜齿圆柱齿轮
查看>>
storm集群的监控
查看>>
RHCE 6.0学习笔记-2 RHEL 6 使用光盘配置本地YUM源
查看>>