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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011508145/article/details/79744831

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

现在知道为什么很多依赖注入第三方开源,需要配置文件,或者代码配置命名空间及类的原因了吧

猜你喜欢

转载自blog.csdn.net/u011508145/article/details/79744831