随笔分类 - Ioc Ioc容器Autofac系列(3)-- 三种注册组件的方式 摘要: 简单来说,所谓注册组件,就是注册类并映射为接口,然后根据接口获取对应类,Autofac将被注册的类称为组件. 虽然可像上篇提到的一次性注册程序集中所有类,但AutoFac使用最多的还是单个注册.这种注册共有三种方式,其中最简单的就是用As方法,例如,ArrayList继承了IEnumerable接口,若将其注册到Autofac中,写法如下所示: ContainerBuilder b...阅读全文 poste…
Autofac是传说中速度最快的一套.NET高效的依赖注入框架.Autofac的介绍与使用请去参考Autofac全面解析系列(版本:3.5).   这里介绍的已经挺详细的啦. 下面我就先来说说MVC4中使用Autofac吧,至于工厂模式与依赖注入的区别的话,这个我简单的解释一下,也只是我的个人观点.使用依赖注入最主要的就是为了解耦,当然工厂模式也可以实现实现大部分的解耦,这个是毋庸置疑的.工厂模式实现方式是向客户端提供一个接口,使客户端不要指定具体产品对象,创建多个产品族的产品对象.将具体实例的…
为了程序的健壮性.扩展性.可维护性,依赖抽象而不是具体实现类等等,于是我选择了Autofac依赖注入容器 就是这个工厂来降低耦合.之前买东西是自己去超市,现在呢 我需要什么东西,他们给送过来直接拿到了.  本例中将会分享 1.Autofac在Mvc的Controller控制器.Filter过滤器的使用 2.WCF中的使用 3.用Autofac来完成Unit Of Work工作单元模式 即同一个界限上下文内可以共享同一个工作单元实例.这样就可以统一提交,起到事务作用.数据统一性.一个http请求只…
本来简单介绍了Autofac在Asp.Net Web Forms中的应用,后来又添加了mvc.控制台应用程序中使用Autofac,详情请看源码. ASP.NET Web Forms使用Autofac,至少需要一下步骤: 1,引用Autofac程序集. 2,添加Autofac Web Modules 到 Web.config. 3,在Global.asax中实现IContainerProviderAccessor接口. 我们创建一个ASP.NET Web Forms项目,命名为WebFormStu…
Autofac前面写了那么多篇, 其实就是为了今天这一篇, Autofac在MVC和WebApi中的应用. 一.目录结构 先看一下我的目录结构吧, 搭了个非常简单的架构, IOC(web), IBLL, BLL, IDAL, DAL, Helper public interface ITestBll { void Say(List<string> msg); } 我里面都是为了实现Say方法的. public class TestBll : ITestBll { public void Say…
经过上篇蜻蜓点水的介绍后,本篇通过实例快速上手autofac,展示当asp.net mvc引入了autofac之后会带来什么. 创建Asp.net MVC并引入Autofac 首先,创建一个MVC站点,为方便起见,选初始带HomeController和AccountController的那种.然后通过NuGet或到Autofac官网下载来引入类库.个人推荐前者,因为从VS2010开始,已内集可视化的NuGet功能,使用起来非常方便.如下图所示: 这是vs2012的界面,点击“Manage NuG…
创建Asp.net MVC并引入Autofac 首先,创建一个MVC站点,为方便起见,选初始带HomeController和AccountController的那种.然后通过NuGet或到Autofac官网下载来引入类库.个人推荐前者,因为从VS2010开始,已内集可视化的NuGet功能,使用起来非常方便.如下图所示: 这是vs2012的界面,点击“Manage NuGet Packages…”,弹出窗体如下,在右上角搜索框中输入“Autofac”,找到对应的库点击安装即可.这里需要应用的库有两…
在后台业务管理系统中使用Autofac实现微信接口的处理,我们只需要把相关使用到的DLL放到BIN目录里面即可,通过IOC控制反转方式实现对接口的调用.在实现在业务系统里面,我们本身程序可能已经依赖了很多相关的DLL类库,这种可以降低对相关DLL的强依赖,而以一种松耦合的方式使用我们所需要的微信接口. 在之前随笔<C#开发微信门户及应用(42)--使用Autofac实现微信接口处理的控制反转处理>里面介绍了Autofac组件实现IOC控制反转的一些实现细节,本篇随笔介绍在业务管理系统中,我们需…
阅读目录 Mvc中使用Autofac 第一步:在mvc中添加dll文件,可以通过Nuget直接添加 第二步:在App_Start文件夹中添加一个AutofacConfig类 第三步:在Global.asax调用AutofacConfig类中的Register方法,注册组件 第四步:简单测试 回到顶部 Mvc中使用Autofac 前面学习了AutoFac的注册.解析.生命周期,这里写一个AutoFac在ASP.NET MVC中的简单使用. 基本结构:AutoFacMvc作为ui层 ,IServic…
在asp.net mvc控制器中使用Autofac来解析依赖 如下Controller中使用构造函数依赖注入接口IUserService: public IUserService _IUserService; public HomeController(IUserService IUserService) { _IUserService = IUserService; } 如何使用AutoFac如下: 1.首先引用AutoFac包 同时也要看一下你的EF版本是多少的,否则会报无法加载“Entit…
https://stackoverflow.com/questions/31321386/autofac-web-api-get-current-scope   Unless you are using OWIN in your API, you should have your Autofac configuration setup in your WebAPI like this, which is the standard way to configure Autofac for WebA…
为什么叫 浅谈 呢?就是字面上的意思,讲得比较浅,又不是不能用(这样是不对的)!!! Aufofac大家都不陌生了,说是.Net生态下最优秀的IOC框架那是一点都过分.用的人多了,使用教程也十分丰富,官网教程也比较详细(如果英文功底还不错的话). 那我为什么还要写这样一篇博客呢,一是用作学习笔记,二就是闲的. 废话不多说,开始正文 项目创建 云创建一个.Net Core Api项目,然后再添加一个类库,大概就是下面这样的结构: 新建一个类库项目,分别添加一个接口文件与类文件: 就这样,我们的演示…
本文转自:http://www.cnblogs.com/aneasystone/archive/2012/08/27/2659183.html 在NopCommerce中新增一个Domain Model,需要以下几个步骤: 1. 新建一个Entity Class (Nop/Core/Domain/Entity.cs) 2. 新建一个Mapping Class (Nop/Data/Mapping/EntityMap.cs) 3. 新建一个View Model (Nop/Admin/Models/E…
表告诉我说你不知道nopCommerce是什么.它是目前.NET中最流行的完全开源网上商城,由俄罗斯的团队在2008年开始立项一直开发到现在已经是3.3版本了.代码目前托管在codeplex上,有兴趣的同学可以猛戳他们的codeplex站点http://nopcommerce.codeplex.com/.   目的和效果 大家造在目前的nopCommerce中已经有网站地图的功能,当你请求如下地址时,http://www.nopchina.com/SitemapSeo会显示XML的站点地图,但有…
前言 突然发现好久没写博客了,前面写的都是关于Android的东西,今天心血来潮突然有一种冲动想写一篇基于JAVA技术的博客,别问我为什么?有钱.任性! 今天就来谈谈反射机制:学过JAVA的人不一定懂得反射,但是一定听说过反射,不过也仅仅是听说过而已:因为反射用的地方也不会那么多,但是反射用的妙经常会解决我们挠破头皮的大问题.至于诸如为什么叫做反射.而不叫做正射倒射此类的历史问题,还是交给历史学家去研究吧... 反射的基石 在谈反射之前,我们应该先了解下类的概念来引入.类是一种抽象的概念,举个例…
我们定义一个类DemoA,再定义一个类DemoB继承DemoA.当构造一个DemoB类对象后,我们可以通过其调用基类DemoA中的方法来反射子类DemoB的成员. 新建一个.NET Core控制台项目,其代码如下: using System; namespace RF { /// <summary> /// DemoA类为基类 /// </summary> class DemoA { /// <summary> /// 反射DemoA类及其子类的所有属性成员 /// &…
[转]NopCommerce中的多商店支持:权威指南 多商店支持是最强大的nopCommerce功能之一.但究竟什么是多店支持?它是谁的?如何在nopCommerce中设置多个商店?在今天的帖子中,我们将回答这些以及与多商店功能相关的其他问题. 什么是nopCommerce中的多店支持? nopCommerce中的多商店功能允许您在单个nopCommerce安装中运行多个在线商店. 您可以在不同的域或子域上运行不同的存储,但不能让它们在单独的虚拟目录中运行. 换句话说,所有商店都在同一个应用程序…
反射 反射是指程序在运行期对程序本身访问和修改的能力 变量的内在机制 变量包含类型信息和值信息 var arr [10]int arr[0] = 10 类型信息:是静态的元信息,是预先定义好的 值信息:是程序运行过程中动态改变的 反射的使用 reflect包封装了反射相关的方法 获取类型信息:reflect.TypeOf,是静态的 获取值信息:reflect.ValueOf,是动态的 空接口和反射 反射可以在运行时动态获取程序的各种详细信息 反射获取interface类型信息 反射获取inter…
[进阶]Spring中的注解与反射 目录 [进阶]Spring中的注解与反射 前言 一.内置(常用)注解 1.1@Overrode 1.2@RequestMapping 1.3@RequestBody 1.4@GetMapping 1.5@PathVariable 1.6@RequestParam 1.7@ComponentScan 1.8@Component 1.9@Service 1.10@Repository 二.元注解 三.自定义注解 四.反射机制概述 4.1动态语言与静态语言 4.1.…
.net Core中自带DI是非常简单轻量化的,但是如果批量注册就得扩展,下面使用反射进行批量注册的 public void AddAssembly(IServiceCollection services,string assemblyName) { if (!string.IsNullOrEmpty(assemblyName)) { var assembly = Assembly.Load(assemblyName); var ts = assembly.GetTypes().Where(n…
项目使用的MVC4,.net 4.5 Nuget安装最新的autofac,一直提示不支持.net 4.5.没办法了,最后用Nuget控制台安装的老版本.因为我使用的是MVC4,所以直接安装的是autofac mvc4的集成. 命令: Install-Package Autofac.Mvc4 安装成功. 示例如下: var builder = new ContainerBuilder(); builder.RegisterControllers(typeof(MvcApplication).Ass…
前言 最近看了一些关于Ioc方面的开源项目,里面的类跳来转去,看的迷迷糊糊的.项目里根本不需要这么“复杂的”设计,只需简单完成Ico,达到解耦的目的,并且能高效的完成项目.于是参考autofac的官网及网络资源,写了这篇文章. 入门的坑 在网上很多关于mvc使用autofac的文章,在global.cs中大多都会有这么一句代码: builder.RegisterControllers 一开始,自己仅是通过nuget引用了autofac,所以怎么也敲不出这个.因此,新入门的小伙半一定要同时引入这两…
首先,现有的三层项目的结构 其中  Repository public interface IPersonRepository { string Eat(); } public class PersonRepository : IPersonRepository { public string Eat() { return "吃饭"; } } Service public interface IPersonService { string Eat(); } public class P…
⒈添加相关依赖 Install-Package Autofac ⒉扫描项目接口实现类 using Autofac; using System; using System.Collections.Generic; using System.Reflection; using System.Text; namespace Unity_Test.Autofac { public class AutofacConfig { private static Lazy<IContainer> contain…
AutoFac的工作原理就是:注册类并映射到接口,通过注入后返回相应实例化的类! 先来简单介绍下Autofac的使用      1.通过Nuget或代码安装autofac 安装autofac :install-package autofac 安装对mvc4的支持:install -package autofac.mvc4      2.新建相应的类及接口,并在autofac中进行映射 2.1.新建接口 INewsHelper namespace test.Interface { public i…
1.nuget安装依赖…
在本人接触的项目中Autofac应用的比较多一些,我理解的他的工作原理就是  注册类并映射到接口,通过注入后返回相应实例化的类! 下面说说我在项目中的实际应用 先来简单介绍下Autofac的使用 1.通过Nuget或代码安装autofac 安装autofac :install-package autofac 安装对mvc4的支持:install -package autofac.mvc4(本人项目为mvc4) 2.新建相应的类及接口,并在autofac中进行映射 2.1.新建接口 INewsHe…
在你阅读时,默认已经了解IOC和autofac的基本用法, 我在最近的我的博客项目中运用了IOC autofac 实现了依赖注入 由于我的项目时asp.net MVC所以我目前向大家展示MVC中如何使用autofac 首先在app_start中新建一个类包含以下方法 using System.Reflection; using Autofac; using Autofac.Integration.Mvc; using System.Web.Mvc; using Microsoft.Extensi…
.net core 3.1 今天已正式发布,3.1跟3.0差别不是很大,主要是对 3.0一小部分修复和完善,最重要的是.NET Core 3.1是长期支持(LTS)版本,建议大家升级. .net core 2.2 这个月就要停止维护,并且微软将不再提供支持,如果你在使用 2.2 ,建议升级到 3.1,可以先升级到3.0,可以参考文档: ASP.NET Core 2.2 迁移到3.0:https://docs.microsoft.com/zh-cn/aspnet/core/migration/22…
在上一章中主要和大家分享了在ASP.NET Core中如何使用Autofac替换自带DI进行构造函数的批量依赖注入,本章将和大家继续分享如何使之能够同时支持属性的批量依赖注入. 约定: 1.仓储层接口都以“I”开头,以“Repository”结尾.仓储层实现都以“Repository”结尾. 2.服务层接口都以“I”开头,以“Service”结尾.服务层实现都以“Service”结尾. 接下来我们正式进入主题,在上一章的基础上我们再添加一个web项目TianYa.DotNetShare.Core…