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. Tomcat服务器版本号泄露-低危漏洞修复

    一.问题描述Tomcat报错页面泄漏Apache Tomcat/7.0.52相关版本号信息,是攻击者攻击的途径之一.因此实际当中建议去掉版本号信息.二.解决办法 1.进入到tomcat/lib目录下, ...

  2. Ubuntu16.04, Gqrx通过RTL-SDR的Q通道收听中短波

    硬件准备 天线: 一根悬垂的3~4米长线天线, 如果只是临时使用, 直接用普通的0.75平方的聚氯乙烯多股软电线就可以了. 巴伦: 9:1巴伦 接收器: Q通道增加低频输入的RTL-SDR接收器 以及 ...

  3. 转:Ogre源代码浅析——脚本及其解析(一)

    Ogre的许多外部资源数据都有着相应的脚本格式,现例举如下: Material(材质):Ogre使用的是“大材质”的概念.狭义的“材质”概念往往是与“贴图”等概念区分开的,比如在Lambert光照模型 ...

  4. 51单片机和Arduino—闪烁灯实现

        技术:51单片机学习.Keil4环境安装.Arduino环境安装.闪烁灯教程   概述 本文提供51单片机.Arduino单片机入门软件安装和一些需要使用的软件介绍,为后续单片机.嵌入式开发做 ...

  5. 图像检索:一维直方图+欧几里得距离+flann+KNN

    在F盘生成了一个文件名称为"文件夹"的文本文件. 第一步:批处理提取图像的一维颜色直方图,并保存到.xml中的featureHists 第一个參数:图像的路径 第二个參数:保存的. ...

  6. 在 Laravel 5.1 中使用 Pjax

    在 Laravel 5.* 的版本中,使用 Pjax 实现无刷新效果,以及酷炫的进度条 项目地址:https://github.com/yccphp/pjax-for-laravel-5 求 star ...

  7. Ubuntu字库安装

    目录 [隐藏] 1 字体相关库的简介 1.1 LibXft 1.2 Cairo 1.3 Fontconfig 1.4 Freetype 1.5 Pango 2 基本概念 2.1 点阵字体与矢量字体 2 ...

  8. boost asio resolver

    asio 中的resolver一般用于将host等信息转化为socket信息,类似于getaddrinfo() 以下代码 boost::asio::io_service io; tcp::resolv ...

  9. 远程首次连接mysql速度慢的解决方法:skip-name-resolve取消DNS的反向解析(转)

    PHP远程连接MYSQL速度慢,有时远程连接到MYSQL用时4-20秒不等,本地连接MYSQL正常,出现这种问题的主要原因是,默认安装的 MYSQL开启了DNS的反向解析,在MY.INI(WINDOW ...

  10. 解决线上服务logback 乱码问题

    从网上查询资料 获得以下结果 1 设置 project 和file 文件为utf-8 编码 2 设置 logback 文件内容 <appender name="CONSOLE" ...