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<ArrayList> List<UserInfo> UserInfolist = new List<UserInfo>(); 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<NetIOCUnity.Models.UserInfo>
@{
ViewBag.Title = "index";
} <h2>index</h2>
<link href="~/Content/bootstrap.css" rel="stylesheet" />
<div class="well">
<table class="table">
<thead>
<tr>
<th>用户名</th>
<th>真实姓名</th>
<th>民族</th>
<th>地址</th>
</tr>
</thead>
<tbody>
@if (Model != null && Model.Any())
{
foreach (var item in Model)
{
<tr>
<td>@item.UserName </td>
<td>@item.TrueName </td>
<td>@item.Nation </td>
<td>@item.LocalAddress </td> </tr> } }
</tbody> </table>
</div>

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<UserInfo> GetAllList()
{
var list = new List<UserInfo>();
for (int i = 0; i <; i++)
{
list.Add(new UserInfo() { Id = i, UserName = "英文名" + i, Nation = "民族" + i, TrueName = "真实名" + i, LocalAddress = "住址" + i, Gender = i });
} return list;
} /// <summary>
/// 查询所有用户
/// </summary>
/// <returns></returns>
public List<UserInfo> Get_AllList()
{
var list = new List<UserInfo>();
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<UserInfo>(sql,commandType: CommandType.Text).ToList();
//dapper扩展写法 类似EF框架
list = conn.GetList<UserInfo>().ToList();
conn.Close();
}
return list;
}
}

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

 /// <summary>
/// 使用nuget为项目增加Unity mvc 5相关的包
/// </summary>
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<IUserService, SimpleUser>();
return container;
}  
}

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

.NET MVC5+ Dapper+扩展+微软Unity依赖注入实例的更多相关文章

  1. Unity依赖注入使用详解

    写在前面 构造器注入 Dependency属性注入 InjectionMethod方法注入 非泛型注入 标识键 ContainerControlledLifetimeManager单例 Unity注册 ...

  2. c# Unity依赖注入WebService

    1.IOC与DI简介 IOC全称是Inversion Of Control(控制反转),不是一种技术,只是一种思想,一个重要的面相对象编程的法则,它能知道我们如何设计出松耦合,更优良的程序.传统应用程 ...

  3. 使用Microsoft.Practices.Unity 依赖注入

    Unity是微软Patterns & Practices团队所开发的一个轻量级的,并且可扩展的依赖注入(Dependency Injection)容器,它支持常用的三种依赖注入方式:构造器注入 ...

  4. 使用Microsoft.Practices.Unity 依赖注入 转载https://www.cnblogs.com/slardar1978/p/4205394.html

    Unity是微软Patterns & Practices团队所开发的一个轻量级的,并且可扩展的依赖注入(Dependency Injection)容器,它支持常用的三种依赖注入方式:构造器注入 ...

  5. C# Unity依赖注入

    简介: 控制反转:我们向IOC容器发出获取一个对象实例的一个请求,IOC容器便把这个对象实例“注入”到我们的手中,在这个过程中你不是一个控制者而是一个请求者,依赖于容器提供给你的资源,控制权落到了容器 ...

  6. Unity 依赖注入

    关于Ioc的框架有很多,比如astle Windsor.Unity.Spring.NET.StructureMap,我们这边使用微软提供的Unity做示例,你可以使用Nuget添加Unity,也可以引 ...

  7. Unity 依赖注入之二

    1. 构造子注入 1.1 构造子注入初级代码 container.RegisterType<IMyWork, MyWork>(new InjectionConstructor(new Bo ...

  8. WPF PRISM开发入门二(Unity依赖注入容器使用)

    这篇博客将通过一个控制台程序简单了解下PRISM下Unity依赖注入容器的使用.我已经创建了一个例子,通过一个控制台程序进行加减乘除运算,项目当中将输入输出等都用接口封装后,结构如下: 当前代码可以点 ...

  9. 在net Core3.1上基于winform实现依赖注入实例

    目录 在net Core3.1上基于winform实现依赖注入实例 1.背景 2.依赖注入 2.1依赖注入是什么? 2.1依赖注入的目的 2.2依赖注入带来的好处 2.2.1生命周期的控制 2.2.2 ...

随机推荐

  1. Inno Setup入门(七)——提供安装语言选项

    Inno Setup安装目录下有一个Languages的文件夹,该文件夹提供了可供使用的语言,通过在脚本中加入[languages]段,可以实现该项功能,实现代码如下: [setup] ;全局设置,本 ...

  2. 转:CMake快速入门教程-实战

    CMake快速入门教程:实战 收藏人:londonKu     2012-05-07 | 阅:10128  转:34    |   来源   |  分享               0. 前言一个多月 ...

  3. 聊聊单元测试(三)——Spring Test+JUnit完美组合

    本着“不写单元测试的程序员不是好程序员”原则,我在坚持写着单元测试,不敢说所有的Java web应用都基于Spring,但至少一半以上都是基于Spring的. 发现通过Spring进行bean管理后, ...

  4. 图片异步加载之EGOImageLoading

    下载地址  http://pan.baidu.com/share/link?shareid=2690186349&uk=923776187 引入目录 简单实用 http://blog.csdn ...

  5. iOS 设备的CPU架构以及查看framework支持架构

    记录一下,感觉摘录的还是比较全的: 模拟器:4s-5: i3865s-7 Plus: x86_64 真机(iOS设备):armv6: iPhone.iPhone 2.iPhone 3G.iPod To ...

  6. iOS与H5交互

    H5与App原生交互,一般会是前端页面中的JavaScript与App使用的原生开发语言的交互.技术方案应能达到以下要求: 在js与原生进行交互的时候能保证正常的正向调用逻辑返回,反向可以处理异步回调 ...

  7. memcached完全剖析--1. memcached的基础

    翻译一篇技术评论社的文章,是讲memcached的连载.fcicq同学说这个东西很有用,希望大家喜欢. 发表日:2008/7/2 作者:长野雅广(Masahiro Nagano) 原文链接:http: ...

  8. Linux操作系统中文件结构stat中st_size的说明以及对于文件中洞(Holes)的理解

    文件stat结构体中st_size成员 对于所有的文件类型,st_size成员对其中的普通文件.目录以及符号链接有实在的意义.其中,对于普通文件而言,st_size记录了该文件的实际大小:对于目录而言 ...

  9. 【struts2】自定义拦截器

    1)什么是自定义的拦截器 所谓自定义的拦截器,就是由我们自己定义并实现的拦截器,而不是由Struts2定义好的拦截器.虽然Struts2的预定义拦截器已经满足了大多数情况的需要.但在有些时候,我们可能 ...

  10. Oracle - 层次查询

    如果表中含有层次数据,可以通过使用层次查询有序地查看层次数据. 语法: condition:指一个或多个表达式和逻辑(布尔)运算符的组合,并返回TRUE.FALSE或UNKNOWNstart with ...