C# 依赖注入中的 控制反转(Assembly)实现
2023-09-11 14:21:58 时间
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[] { });
}
很多依赖注入第三方开源,需要配置文件,或者代码配置命名空间也是这个原因
相关文章
- C#实现控制Windows系统关机、重启和注销的方法
- C#子线程中更新ui-----c# 多线程多文件批量下载
- C#/.NET/.NET Core Dapper 批量删除、新增、修改说明
- C#.NET常见问题(FAQ)-方法参数带ref是什么意思
- C#通过XML导出Excel
- c# 前台和后台线程
- C# 文件流压缩解压
- C# Socket 线程
- C#基础——控制语句
- (六十)c#Winform自定义控件-鼓风机(工业)-HZHControls
- c# 控制职能运行单一实例,再次运行显示已经运行的实例
- (10)C#使用SuperSocket库发现一个用法比较怪异
- C#如何调用DOS命令
- [C#.NET 拾遗补漏]10:理解 volatile 关键字
- C#操作ini文件