Resolve Type中构造函数传值

1

 1   class Test
 2     {
 3
 4         private ITeacher _teacher;
 5         private IStudent _student;
 6         public Test(ITeacher tea, IStudent stu)
 7         {
 8             _teacher = tea;
 9             _student = stu;
10         }
11     }

2

 1    class Student:IStudent
 2     {
 3
 4         public Student()
 5         {
 6             int i = 1;
 7         }
 8
 9
10         public int Age
11         {
12             get { throw new NotImplementedException(); }
13         }
14     }

3

 1    class Teacher:ITeacher
 2     {
 3
 4         public Teacher()
 5         {
 6             int m = 0;
 7         }
 8         public int Age
 9         {
10             get { throw new NotImplementedException(); }
11         }
12     }

4

1             _container.RegisterType<IStudent, Student>(new ContainerControlledLifetimeManager());
2             _container.RegisterType<ITeacher, Teacher>(new ContainerControlledLifetimeManager());
3
4             var viewModelTypeName = string.Format(CultureInfo.InvariantCulture, "App5.Test, App5, Version=1.0.0.0, Culture=neutral");
5             var viewModelType = Type.GetType(viewModelTypeName);
6
7             _container.Resolve(viewModelType);

并没有注册过Test类

但是Resolve Test类的时候,Test构造函数中的参数会自动Resolve

即相当于调用Test构造函数前,会进行如下操作

1 _container.Resolve(ISutdent);

2 _container.Resolve(ITeacher);

并将结果作为Test的构造函数参数传给Test

注意:如果Test中构造函数所传参数并没有通过注册,Test类的Resolve操作会报错

关于RegeistType可以查看http://www.cnblogs.com/50614090/archive/2012/02/01/2334866.html

时间: 2024-12-24 17:19:56

Resolve Type中构造函数传值的相关文章

20150214&mdash;winform中使用构造函数传值

构造函数,在函数初始化时就会执行的函数方法,在创建一个类之后,系统会自动在此类中生成一个与类名相同的函数,其中只包含一句代码: InitializeComponent(); 新建一个名字相同的函数,然后使用一个参数,已构成此函数的另一个重载方法,这个参数可以是任何类型,string,int,甚至是自己创建的类,例如以下代码中新建的构造函数的参数就是以自己创建的类为参数,这里的传值主要用来传用户的登陆路信息. namespace dati_150128 { public partial class

C#-WinForm-跨窗体 构造函数传值 及应用—登录式窗口传值、如何关闭主页面时关闭应用程序、如何打开唯一窗口—★★★★★五星重量级

构造函数可以传任意类型的值,并可以同时传多个值 结构函数传值的初步应用--简单的登陆式界面 现在我有两个窗体Form3和Form4,如下,如何点击Form3中的按钮后,打开Form4并将Form3中的textbox中的值传给Form4的label? 1.点击Form3中的按钮打开Form4 2.获取Form3中的值 3.传值给Form4中的label 一.获取Form3中textbox1的值 button1的点击事件: namespace 记事本 { public partial class F

一点一点学架构(四)—Spring.NET错误Cannot Resolve Type……

背景 在搭建完项目框架之后,当我利用单元測试来測一条线时.出现了下面错误: Cannot resolve type[--]for object with name 'ButtonBll' defined in config. 看到问题描写叙述之后首先去检查了自己配置文件里的配置: <!--B层实现注入--> <object id="ButtonBll" type="ITOO.UIQueryProperties.BLL.ButtonBll,ITOO.UIQue

winform打开唯一窗口、构造函数传值

制作登录窗体: 制作一个登陆窗体,实现点击按钮关闭此窗体并打开另一个窗体 直接在按钮点击事件中,实例化一个想要打开的窗体 使用show方法打开,并把登陆窗体的visible属性改为false Form1 f1 = new Form1(); f1.Show(); this.Visible = false; 另:这样写的话再关闭第二个窗口的时候,程序并没有完全结束,第一个登陆窗口仍然存在,虽然不显示 因此我们用到构造函数传值,并且这样可以实现打开唯一窗口(不重复打开同一个窗口) 构造函数传值: 构造

【2017-04-27】布局及容器控件、打开多窗体、构造函数传值、打开唯一窗口

一.布局和容器控件 1.布局属性 - Anchor  控件定位锁死在那个位置,根据哪个位置锁死. - Dork     填充满.填充上下左右. - Location  位置. 2.容器控件 - Panel  相当于html中的div. - FlowLayoutPanel  继承自Panel,多了流式布局功能 - GroupBox    继承自Panel,多了一个标题,有小虚线. - TabControl  选项卡 选项卡修改标题,用选项卡的TabPages属性,在每个选项卡标题对应的Text属性

构造函数传值 和仅打开唯一窗体

登陆窗体: 制作一个登录窗口Form1,要求登陆后打开一个新窗口,隐藏该窗口(注:关闭新窗口时,该窗口不会关闭,程序未结束,需要用到构造函数传值来关闭新窗口的同时,关闭该登录窗口.) Form2 f2 = new Form2(this, user);//横线部分与下方讲的传值相对应 f2.Show(); this.Visible = false; 构造函数传值 将登陆窗口中输入的用户名传值给Form2窗体,Form2关闭时同时将Form1关闭 Form1 F1 = null; Users Use

winform修改、打开窗体、构造函数传值

制作登录窗体: 制作一个登陆窗体,实现点击按钮关闭此窗体并打开另一个窗体 直接在按钮点击事件中,实例化一个想要打开的窗体 使用show方法打开,并把登陆窗体的visible属性改为false Form1 f1 = new Form1(); f1.Show(); this.Visible = false; 另:这样写的话再关闭第二个窗口的时候,程序并没有完全结束,第一个登陆窗口仍然存在,虽然不显示 因此我们用到构造函数传值,并且这样可以实现打开唯一窗口(不重复打开同一个窗口) 构造函数传值: 构造

Winform 主窗体更换 构造函数传值

制作登录窗体: 制作一个登陆窗体,实现点击按钮关闭此窗体并打开另一个窗体 直接在按钮点击事件中,实例化一个想要打开的窗体 使用show方法打开,并把登陆窗体的visible属性改为false Form1 f1 = new Form1(); f1.Show(); this.Visible = false; 登陆界面 namespace WindowsFormsApplication1 { public partial class Login : Form { public string usern

winform打开唯一窗体、构造函数传值

制作登入窗体: 制作一个登陆窗体,实现点击按钮关闭此窗体并打开另一个窗体 直接在按钮点击事件中,实例化一个想要打开的窗体 使用show方法打开,并把登陆窗体的visible属性改为false Form1 f1 = new Form1(); f1.Show(); this.Visible = false; 另:这样写的话再关闭第二个窗口的时候,程序并没有完全结束,第一个登陆窗口仍然存在,虽然不显示 因此我们用到构造函数传值,并且这样可以实现打开唯一窗口(不重复打开同一个窗口) 构造函数传值: 构造