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

本文通过实例解释了控制反转的概念,对比了正转与反转的区别,并介绍了如何通过反射加载程序集来实现依赖注入。

       对于刚接触依赖注入的人来说,什么面向切面,反射,依赖注入等等一时不好理解,  首先,都在说控制反转,既然有反转那么就会有控制正转,相信很多网上寻找控制反转资料中,很少有提到过正转。 正转也简单,就是我们通常调用的方式,由底层类库生产,逻辑层通过引用并进行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[] { });
        } 

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值