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. Linux chattr 命令

    不让用户修改.删除文件等,使用 chattr保护 chattr命令的用法:chattr [ -RV ] [ -v version ] [ mode ] files… 最关键的是在[mode]部分,[m ...

  2. Linux alias别名设置

    alias命令用来设置指令的别名.我们可以使用该命令可以将一些较长的命令进行简化.使用alias时,用户必须使用单引号''将原来的命令引起来,防止特殊字符导致错误. 语法 alias(选项)(参数) ...

  3. 主成分分析PCA

    PCA(Principal Component Analysis)不仅仅是对高维数据进行降维,更重要的是经过降维去除了噪声,发现了数据中的模式. PCA把原先的n个特征用数目更少的m个特征取代,新特征 ...

  4. Arduino通过I2C(PCF8574T)驱动1602LCD

    Arduino中使用I2C通信可直接调用Wire.h库, 这个库允许Arduino链接其他I2C设备, 链接线有两条, 分别是SDA(数据行)和SCI(时钟线). 各型号Arduino的I2C对应引脚 ...

  5. window.parent 与 Window.top

    window.parent 返回当前窗口的父窗口对象. 如果一个窗口没有父窗口,则它的 parent 属性为自身的引用. 如果当前窗口是一个 <iframe>, <object> ...

  6. Easyui入门视频教程 第03集---Easyui布局

    Easyui入门视频教程 第03集---Easyui布局 目录 ----------------------- Easyui入门视频教程 第09集---登录完善 图标自定义   Easyui入门视频教 ...

  7. 简述MVC

    强调:mvc不是框架而是一种设计模式 分层结构的好处:1.降低了代码之间的耦合性 2.提高了代码的重用性 一. 概述 MVC的全名Model View Controller,即模型-视图-控制器的缩写 ...

  8. warning C4005 DXGI_STATUS_OCCLUDED

    注意包含顺序 要将 $(DXSDK_DIR)Include放在后面才行 $(VC_IncludePath)$(WindowsSDK_IncludePath)$(DXSDK_DIR)Include 为了 ...

  9. servlet 让浏览器输出中文,并成功打印出来.2种方法

    import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; impor ...

  10. Oslo 相机 App

    https://itunes.apple.com/cn/app/osho/id1203312279?mt=8.它支持1:1,4:3,16:9多种分辨率拍摄,滤镜可在取景框的实时预览,拍摄过程可与滤镜实 ...