1. 程式人生 > >C# 依賴注入中的 控制反轉(Assembly)實現

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[] { });
        } 

現在知道為什麼很多依賴注入第三方開源,需要配置檔案,或者程式碼配置名稱空間及類的原因了吧