Autofac IContainer 测试
using Autofac;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace AutofacDemo
{
public interface ITest
{
string Hello1();
} public class Test1 : ITest
{
public string Hello1()
{
Console.WriteLine("ok1");
return "ok11";
}
} public class Test2 : ITest
{
public string Hello1()
{
Console.WriteLine("ok2");
return "ok22";
}
} class Program
{
private static IContainer Container1 { get; set; }
private static IContainer Container2 { get; set; } static void Main(string[] args)
{
var builder3 = new ContainerBuilder();
builder3.RegisterType<Test1>().As<ITest>();
var Container3 = builder3.Build(); var builder1 = new ContainerBuilder();
builder1.RegisterType<Test1>().As<ITest>();
var Container1 = Container3;// builder1.Build(); var builder2 = new ContainerBuilder();
builder2.RegisterType<Test2>().As<ITest>();
var Container2 = Container3;// builder2.Build(); //using (var scope = Container1.BeginLifetimeScope())
//{
// var test1 = scope.Resolve<ITest>();
// test1.Hello1();
//} //using (var scope = Container2.BeginLifetimeScope())
//{
// var test2 = scope.Resolve<ITest>();
// test2.Hello1();
//} var test1 = Container1.Resolve<ITest>();
test1.Hello1(); var test2 = Container2.Resolve<ITest>();
test2.Hello1();
Console.WriteLine(Container1.GetHashCode());
Console.WriteLine(Container2.GetHashCode());
}
}
}
结果是这两个hashcode相等
Console.WriteLine(Container1.GetHashCode());
Console.WriteLine(Container2.GetHashCode());
Autofac IContainer 测试的更多相关文章
- Autofac之类型注册
本次主要学习一下Autofac中实现类型注册的几种方式,这里并不打算一开始就从基于接口开发的服务关联切入,而是先从一个简单的类型注册来学起,虽然实际开发中可能不会这么做,但是个人感觉从这里学起理解能能 ...
- Ioc Autofac心得
对于这个容器注入,个人也不是很熟悉,很多还不懂,只会基本的操作,几天把它记录下来,说不定以后帮助就大了呢,这方面跟安卓差距还是挺大的 下面记录下应用的流程 步骤: 1.添加应用 2.重写工厂(这里讲的 ...
- 也说Autofac在MVC的简单实践:破解在Controller构造函数中的实例化 - winhu
相信大家对Autofac并不陌生,很多人都在使用.本文只是介绍一下本人在使用时的一点想法总结. 在使用一个框架时,肯定要去它的官网查阅一下.autofac的官网给出了一些经典的使用案例.如注册容器: ...
- Autofac IOC框架
ASP.NET Core自带了一个轻量级的IOC容器 但是只提供了最基本的AddXXX方法来绑定实例关系 需要一个一个添加 可以使用其他IOC容器来替换内置的 ABP自带Castl ...
- ioc autofac简单示例
1.winform用法: nuget安装autofac public interface ILog { bool Log(string msg); } public class TXTLogger : ...
- Autofac 控制反转
class Program { static void Main(string[] args) { IContainer container = Init(); Go(container); Cons ...
- 从零开始,搭建博客系统MVC5+EF6搭建框架(2),测试添加数据、集成Autofac依赖注入
一.测试仓储层.业务层是否能实现对数据库表的操作 1.创建IsysUserInfoRepository接口来继承IBaseRepository父接口 namespace Wchl.WMBlog.IRe ...
- 【干货】利用MVC5+EF6搭建博客系统(二)测试添加数据、集成Autofac依赖注入
PS:如果图片模糊,鼠标右击复制图片网址,然后在浏览器中打开即可. 一.测试仓储层.业务层是否能实现对数据库表的操作 1.在52MVCBlog.IRepository程序集下创建IsysUserInf ...
- C#开发微信门户及应用(42)--使用Autofac实现微信接口处理的控制反转处理
在很多情况下,我们利用IOC控制反转可以很方便实现一些接口的适配处理,可以在需要的时候切换不同的接口实现,使用这种方式在调用的时候,只需要知道相应的接口接口,具体调用哪个实现类,可以在配置文件中动态指 ...
随机推荐
- hdu3555 数位dp
Bomb Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others) Total Subm ...
- mysql 存储过程和存储函数
14.1.1 创建存储过程 MySQL中,创建存储过程的基本形式如下: CREATE PROCEDURE sp_name ([proc_parameter[,...]]) [characteristi ...
- Yii2的Debug工具
yii2的Debug工具 调用 r=debug 可以对程序进行性能分析,从而对程序进行改良 (1)数据库某条sql语句的执行时间 (2)debug的profiling标签 \YII::beginP ...
- 纯代码自定义不等高cell
数据模型.plist解析这里就不过多赘述. 错误思路之一: 通过在heightForRowAtIndexPath:方法中调用cellForRowAtIndexPath:拿到cell,再拿到cell的子 ...
- 54. Android中adb常用命令及应用常用目录
本文主要介绍adb常用命令及应用常用目录.1.adb常用命令adb devices列出所有连接的android设备.以下命令都是对单个devices而言,如果存在多个devices的话,下面的命令都需 ...
- Jquery打叉怎么办
选中报错文件右键MyEclipse>Exclude From xxxx
- css3的@media媒体查询
css3新功能,根据屏幕大小进行识别. 参考: http://www.runoob.com/cssref/css3-pr-mediaquery.html
- 20150706 test2
净心守志:可会至道.譬如磨镜:垢去明存.断欲无求:当得宿命
- 数据结构算法C语言实现(十四)--- 4.1&4.2串的类型定义、表示及实现
一.简述 [暂无] 二.头文件 //4_2_part1.h /** author:zhaoyu */ //2016-6-10 //----串的定长顺序存储表示---- #include "h ...
- InternalsVisibleToAttribute——把internal成员暴露给指定的友元程序集
友元程序集简介 我们知道一个类中被定义为internal的成员(包括类型.方法.属性.变量.事件)是只能在同一个程序集中被访问到的(当然了,我这里说的是正常的方式,不包括通过反射来访问).这个规则在. ...