博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.NET MVC5+ Dapper+扩展+微软Unity依赖注入实例
阅读量:6517 次
发布时间:2019-06-24

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

1.dapper和dapper扩展需要在线安装或者引用DLL即可   

使用nuget为项目增加Unity相关的包

2.model类

public class UserInfo    {        public int Id { get; set; }        public string UserName { get; set; }        public string Nation { get; set; }        public string TrueName { get; set; }        public DateTime Birthday { get; set; }        public string LocalAddress { get; set; }        public int Gender { get; set; }    }

3.定义Controller

public class UserController : Controller    {        //        // GET: /User/async static Task
List
UserInfolist = new List
(); private IUserService service; public  UserController(IUserService service) { this.service = service; } public ActionResult Index() { var data = this.service.Get_AllList(); return View(data); }   }

4. Index的视图

@model List
@{ ViewBag.Title = "index";}

index

@if (Model != null && Model.Any()) { foreach (var item in Model) {
} }
用户名 真实姓名 民族 地址
@item.UserName @item.TrueName @item.Nation @item.LocalAddress

5.数据访问接口

 public interface IUserService

    {
        /// <summary>
        /// 查询所有用户
        /// </summary>
        /// <returns></returns>
        List<UserInfo> GetAllList();

        /// <summary>

        /// 查询所有用户
        /// </summary>
        /// <returns></returns>
        List<UserInfo> Get_AllList();
    }

6.定义接口一个实现类SimpleUser

public class SimpleUser:IUserService    {        public static string constr = ConfigurationManager.ConnectionStrings["SQLConnection"].ConnectionString;        IDbConnection conn = new SqlConnection(constr);        public List
GetAllList() { var list = new List
(); for (int i = 0; i < 10; i++) { list.Add(new UserInfo() { Id = i, UserName = "英文名" + i, Nation = "民族" + i, TrueName = "真实名" + i, LocalAddress = "住址" + i, Gender = i }); } return list; } ///
/// 查询所有用户 /// ///
public List
Get_AllList() { var list = new List
(); string sql = @"select top(20) UserName,TrueName,Nation,LocalAddress,Birthday,Gender from UserInfo"; //select Id,UserName,Nation,TrueName,Birthday,LocalAddress,Gender from UserInfo using (SqlConnection conn = new SqlConnection(constr)) { conn.Open(); //dapper标准写法 写原生sql // list = conn.Query
(sql,commandType: CommandType.Text).ToList(); //dapper扩展写法 类似EF框架 list = conn.GetList
().ToList(); conn.Close(); } return list; } }

7. 注册依赖使用依赖注入生效

///     /// 使用nuget为项目增加Unity mvc 5相关的包    ///     public class MvcApplication : System.Web.HttpApplication    {        protected void Application_Start()        {            AreaRegistration.RegisterAllAreas();            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);            RouteConfig.RegisterRoutes(RouteTable.Routes);            BundleConfig.RegisterBundles(BundleTable.Bundles);            //注入IOC             var container = this.BuildUnityContainer();            DependencyResolver.SetResolver(new UnityDependencyResolver(container));          }        IUnityContainer BuildUnityContainer()        {            var container = new UnityContainer();            container.RegisterType
(); return container; }   }

8.项目的Global.asax在里面加入上面的注入IoC相关的代码,上面的代码是最核心的,要使依赖注入生效必须要上面的代码。

 

转载地址:http://wzrfo.baihongyu.com/

你可能感兴趣的文章
unity physics joint
查看>>
TD的访问地址
查看>>
JAVA常见面试题之Forward和Redirect的区别
查看>>
tmpFile.renameTo(classFile) failed 错误
查看>>
【甘道夫】Apache Hadoop 2.5.0-cdh5.2.0 HDFS Quotas 配额控制
查看>>
一张图看懂normal,static,sealed,abstract 的 区别
查看>>
Task的使用
查看>>
grep和正则表达式
查看>>
s:iterator巧妙控制跳出循环
查看>>
移动互联网思维
查看>>
Serv-U 的升级及数据备份和迁移【转】
查看>>
webstorm无法显示左边文件夹目录的解决方法
查看>>
数字校园-云资源平台 2014.10.26-人人通共享空间
查看>>
在 CentOS 和 RHEL 上安装 Puppet 服务器和客户端
查看>>
Android性能优化Google课程翻译一:Render----OverDraw实战
查看>>
为你的网站加上SSL,可以使用HTTPS进行访问
查看>>
软件project--谈项目开发
查看>>
在Android中创建文件
查看>>
爬虫基础
查看>>
JS组件系列——再推荐一款好用的bootstrap-select组件,亲测还不错
查看>>