Autofac 一个使用Demo
一:接口
二:实现:
三:调用:
首先上图:
一:接口代码
public interface IPersonDa
{
PersonEntity Get(int id);
}
二:实现
public class PersonDa : IPersonDa
{
public PersonEntity Get(int id)
{
using (BaseMgr.BaseSysDbContext db = new BaseSysDbContext()) {
var result = db.People.Where(p => p.Id == id).FirstOrDefault();
return new PersonEntity();//返回 Person 成 PersonEntity 并返回
}
}
}
数据访问实体:
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
}
传输(其他)实体:
public class PersonEntity
{
public int Id { get; set; }
public string Name { get; set; }
}
三:调用
static void Main(string[] args)
{
ContainerBuilder builder = new ContainerBuilder();
var basePath = AppDomain.CurrentDomain.BaseDirectory;
var dataAccess = Assembly.LoadFrom("ChesFrame.DataAccess.dll");
var dataAccess2 = Assembly.LoadFrom("ChesFrame.IDataAccess.dll");
builder.RegisterAssemblyTypes(dataAccess2,dataAccess ).Where(t => t.Name.EndsWith("Da")).AsImplementedInterfaces();
var container = builder.Build();
foreach (var sub in container.ComponentRegistry.Registrations)
{
Console.WriteLine("Target-------" +sub.Target.ToString());
Console.WriteLine("Services-----" + sub.Services.ToString());
foreach (var m in sub.Services)
{
Console.WriteLine("Service------" + m.ToString());
}
Console.WriteLine("-------------------------------------");
}
var person = container.Resolve<IPersonDa>();
}
运行结果:
另外说一点关于项目中使用EF:
项目中EF只是当成了一个数据访问工具,它使用的实体为数据访问实体,数据访问实体只能出现在数据访问层中,
看一下数据访问层的结构
Person、Blog、Post 都只能在 DataAccess中,之外不能访问到;
代码
在项目中,这里的调用 可能需要单独抽取出来,做成Utility,可以 结合配置文件,从配置文件中提取DLL,加载入CurrentDomain中
Autofac入门指南:http://autofac.readthedocs.org/en/latest/getting-started/index.html
转载于:https://www.cnblogs.com/beixing/p/3915478.html
Autofac 一个使用Demo相关推荐
- LeadTools Android 入门教学——运行第一个Android Demo
LeadTools 有很多Windows平台下的Demo,非常全面,但是目前开发手机应用的趋势也越来越明显,LeadTools也给大家提供了10个Android的Demo,这篇文章将会教你如何运行第一 ...
- java线程间通信:一个小Demo完全搞懂
版权声明:本文出自汪磊的博客,转载请务必注明出处. Java线程系列文章只是自己知识的总结梳理,都是最基础的玩意,已经掌握熟练的可以绕过. 一.从一个小Demo说起 上篇我们聊到了Java多线程的同步 ...
- js 取得input绑定的datalist中的值_原生JS写一个ToDo Demo
周六加班没什么事,于是乎...上班摸鱼,用原生JS写了一个ToDo Demo,废话少叙,直接看效果: 如图,实现了以下需求(以下的具体实现我会一一道来): 0.页面的基本布局: 1.rem布局.在不同 ...
- 微信小程序云开发实现一个社区 Demo(补充)
之前写了一篇文章介绍如何使用云开发来实现一个社区 Demo: 微信小程序~云开发的实现的一个社区 Demo(完结~) 得到很多小伙伴的认可但也出现了一些问题. 主要问题有: 发布的图片不显示,跨端发布 ...
- 第一个Flutter demo——实现无限循环列表
第一个Flutter demo(一) 参照flutter官网,实现第一个Flutter应用.第一部分:实现无限循环列表 第一部分功能介绍: 从零开始创建了一个 Flutter 应用: 编写 Dart ...
- springboot mybatis easyui 整合的一个小demo
springboot mybatis easyui 整合的一个小demo 这是最终完成界面 话不多说 开整! 这是项目结构 数据库 表结构和数据库 (有点乱 之前本来是个正经图书表的 = =.) /* ...
- cuda编程与gpu并行计算(三):一个小demo了解cuda基本语法
gpu程序的一般步骤 CPU分配空间给GPU(cudaMalloc) CPU复制数据给GPU(cudaMemcpy) CPU加载kernels给GPU做计算(Kernel核: 可以理解为C/C++中的 ...
- 用HTML和CSS简单语法写的一个简历Demo
学完了学堂在线Web攻城狮课程的前两章节(HTML和CSS基础).完成了第二章布置的作业--利用学过的知识制作一个简历Demo. 我...拿校长的百科词条做简历了,不知道有没有侵权......现在发布 ...
- windows环境下使用clion引入eigen库并实现一个小demo
本文仅作个人记录用,之前未接触过C++,也没有使用过clion和cmake,不喜勿喷. 首先下载clion,mingw并配置相关环境,安装cmake,这部分比较简单,没有遇到什么问题. 接下来新建一个 ...
最新文章
- MySQL查询出错提示 --secure-file-priv解决方法
- php基础不好,基础不好,问个php类调用的初级问题
- python 获取系统相关编码的函数
- 详解Objective-C中委托和协议
- Windows 7 HomeGroup的隐私保护
- MongoDB 教程番外篇之管理工具: Rockmongo
- alook浏览器js扩展网站_备用浏览器Alook所能实现的功能果真强大(文末有alook兑换码抽奖)...
- 如何真正实现无提示保存Excel文档
- Go_认识golang
- VC++控件加载BMP图片(静态和动态方式)
- 我把SpringBoot的banner换成了美女,老板说工作不饱和,建议安排加班...
- 训练 AI 创作诗歌 6 NLP 从零到英雄 Training an AI to create poetry
- 电脑怎样查看密码?100%简单实用的方法
- 强烈推荐一款好用的API接口
- html内部css调节背景图片的大小,css中怎么改变背景图片大小?
- 修改UA在PC中访问只能在微信中打开的链接
- 江苏中理网络科技有限公司介绍
- 二次规划及qpoases简要介绍
- iperf使用与交叉编译
- 【海康视频SDK】linux服务器端截图与下载视频
热门文章
- static unsigned short,int ,char
- mac 源生安装mysql_docker安装MySQL数据库
- MATLAB在温室中的应用,基于MATLAB的日光温室内气温的图形显示方法与流程
- rabbitmq优先级队列
- shiroConfig配置中要注意的事项
- 013_logback中的SyslogAppender
- mysql list列表批量更新数据,Mybatis传入List实现批量更新的示例代码
- 添加用户信息的方法java_添加用户的流程分析
- 自定义View:测量measure,布局layout,绘制draw
- php uncaught thrown,PHP异常详解