C# 依赖注入中的 控制反转(Assembly)实现

2018-03-29 16:53:18 lm_home 阅读数 665更多

       对于刚接触依赖注入的人来说,什么面向切面,反射,依赖注入等等一时不好理解,  首先,都在说控制反转,既然有反转那么就会有控制正转,相信很多网上寻找控制反转资料中,很少有提到过正转。 正转也简单,就是我们通常调用的方式,由底层类库生产,逻辑层通过引用并进行new 实例化,进行调用,这就是正转,正转与之相反,不通过new直接调用,这就是反转,做过C#调用C++项目中的动态库时大概都知道,Assembly类

     下面代码以简单的叙述一下控制反转到底是什么:

public void LoadAssembly(){
	//DLL所在的绝对路径
	Assembly assembly = Assembly.LoadFrom(AppDomain.CurrentDomain.BaseDirectory + "Entity.dll");
	//注意写法:程序集.类名
	Type type = assembly.GetType("Entity.ClassName");
	//获取类中的公共方法GetResule
	MethodInfo methed = type.GetMethod("MethodName");
	//创建对象的实例
	object instance = System.Activator.CreateInstance(type);
	//执行方法 new object[]为方法中的参数
	object result = methed.Invoke(instance, new object[] { });
}

很多依赖注入第三方开源,需要配置文件,或者代码配置命名空间也是这个原因

原文地址:https://www.cnblogs.com/grj001/p/12223922.html