亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

IOC

2019-11-14 16:44:56
字體:
來源:轉載
供稿:網友

1.先定義一個數據接口和兩個數據實現類

 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5  6 namespace IDAL 7 { 8    public interface IStudent 9     {10        //11        string Reading();12 13        //14        string Writing();15 16     }17 }
View Code
 1 using IDAL; 2 using System; 3 using System.Collections.Generic; 4 using System.Linq; 5 using System.Text; 6  7 namespace MSDAL 8 { 9     public class Student : IStudent10     {11 12         public string Reading()13         {14             return "Reading , this is MSDAL";15         }16 17         public string Writing()18         {19             return "Writing , this is MSDAL";20         }21     }22 }
View Code
 1 using IDAL; 2 using System; 3 using System.Collections.Generic; 4 using System.Linq; 5 using System.Text; 6  7 namespace MySQLDAL 8 { 9     public class Student : IStudent10     {11         public string Reading()12         {13             return "Reading , this is MySqlDAL";14         }15 16         public string Writing()17         {18             return "Writing , this is MySqlDAL";19         }20     }21 }
View Code

2.實現客戶端調用---直接調用

 1  class PRogram 2     { 3         static void Main(string[] args) 4         { 5             //1.緊耦合 要切換數據庫改動很多 6              MSDAL.Student studentMS = new MSDAL.Student(); 7              Console.WriteLine("1" + studentMS.Writing() + studentMS.Reading()); 8              //MySqlDAL.Student studentMySql = new MySqlDAL.Student(); 9              //Console.Write(studentMySql.Writing() + studentMySql.Reading());10      }  
    }

3.實現客戶端調用---接口編程 依賴抽象

 1  class Program 2     { 3         static void Main(string[] args) 4         { 5           //2.接口編程 依賴抽象    要切換數據庫改動較多 6              IStudent student = new MSDAL.Student();//Student類對象還是出現在前臺, 緊耦合 7             // IStudent student = new MySqlDAL.Student(); 8              Console.WriteLine("2" + student.Writing() + student.Reading()); 9         }10     }     

4.實現客戶端調用---反射解耦

 1  class Program 2     { 3         static void Main(string[] args) 4         { 5              //3.反射解耦             6             string assemblyName = "MSDAL";//程序集名稱 7             string className = assemblyName + ".Student";//類的全名稱 8             //IOC(控制反轉):對象在被創建的時候,由一個調控系統內所有對象的外界實體,將其所依賴的對象的引用,傳遞給它 9             IStudent studentReflection = (IStudent)Assembly.Load(assemblyName).CreateInstance(className);10             Console.WriteLine("3" + studentReflection.Writing() + studentReflection.Reading());   11       }12     }     

5.實現客戶端調用---反射+配置文件

 1 class Program 2     { 3         static void Main(string[] args) 4         { 5  6             //4.反射+配置文件 7             string assemblyNameConfiguration = ConfigurationManager.AppSettings["DAL"]; //程序集名稱 可在配置文件中靈活切換數據層 8             string classNameConfiguration = assemblyNameConfiguration + ".Student";//類的全名稱 9 10             //IOC(控制反轉):對象在被創建的時候,由一個調控系統內所有對象的外界實體,將其所依賴的對象的引用,傳遞給它11             IStudent studentConfiguration = (IStudent)Assembly.Load(assemblyNameConfiguration).CreateInstance(classNameConfiguration);12             Console.WriteLine("4" + studentConfiguration.Writing() + studentConfiguration.Reading());13             }14     }            

6.實現客戶端調用---Spring.Net創建對象解耦

 需要添加Spring.Core.dll程序集引用

 1   class Program 2     { 3         static void Main(string[] args) 4         { 5          //5.Spring.Net創建對象 6             IapplicationContext SpringContext = Spring.Context.Support.ContextRegistry.GetContext();//spring容器 7             IStudent studentSpring = (IStudent)SpringContext.GetObject("DAL");//創建實例對象 8             Console.WriteLine("5" + studentConfiguration.Writing() + studentConfiguration.Reading()); 9         }10     }

 配置文件  

 1 <?xml version="1.0"?> 2 <configuration> 3   <configSections> 4     <sectionGroup name="spring"> 5         <section name="context" type="Spring.Context.Support.ContextHandler, Spring.Core"/> 6         <section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core"/> 7       </sectionGroup> 8   </configSections> 9 <spring>10     <context>11       <!--<resource uri="~/Objects.xml"/>-->12       <resource uri="config://spring/objects"/>13     </context>    14     <objects>    15       <object id="DAL" type="MSDAL.Student,MSDAL"></object>16     </objects>17   18   </spring>19 <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/></startup></configuration>
View Code

7.實現客戶端調用---Unity 創建對象解耦

 需要添加Microsoft.Practices.Unity.dll和Microsoft.Practices.Unity.Configuration.dll程序集引用

 1  class Program 2     { 3         static void Main(string[] args) 4         { 5              //6.Unity 創建對象 6             IUnityContainer mycontainer = new UnityContainer();//Unity容器 7             UnityConfigurationSection section = (UnityConfigurationSection)ConfigurationManager.GetSection("unity");//配置文件信息 8             section.Configure(mycontainer);//將配置文件信息給Unity容器         9             IStudent studentUnity = mycontainer.Resolve<IStudent>();//創建實例對象10             Console.WriteLine("6" + studentUnity.Writing() + studentUnity.Reading());  11         }12     }    

配置文件

 1 <?xml version="1.0"?> 2 <configuration> 3   <configSections> 4  5     <section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection,Microsoft.Practices.Unity.Configuration"/> 6  </configSections> 7 <unity> 8     <container>      9       <register type="IDAL.IStudent,IDAL" mapTo="MSDAL.Student,MSDAL">10         <lifetime type="singleton"/>11       </register>12     </container>13   </unity>14 15 <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/></startup>16 </configuration>
View Code

 

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲午夜久久久久久久| 成人免费黄色网| 狠狠躁夜夜躁人人爽超碰91| 欧美成人一区二区三区电影| 日韩精品在线私人| 国产精品女人久久久久久| 日韩视频欧美视频| 日本最新高清不卡中文字幕| 久久久久久久999精品视频| 日韩欧中文字幕| 欧美大全免费观看电视剧大泉洋| 日本不卡免费高清视频| 国产日韩欧美电影在线观看| 亚洲精品456在线播放狼人| 亚洲美女黄色片| 91久久久久久久| 日韩网站免费观看高清| 成人黄色av免费在线观看| 日韩av电影中文字幕| 日韩综合中文字幕| 欧美久久精品午夜青青大伊人| 成人在线中文字幕| 欧美性猛交视频| 国产精品毛片a∨一区二区三区|国| 亚洲片在线资源| 久久久成人精品| 久久99久久99精品免观看粉嫩| 欧美一级淫片aaaaaaa视频| 国产成人精品久久亚洲高清不卡| 一本色道久久88综合日韩精品| 欧美激情精品久久久久久| 久久精品国产成人| 久久久噜噜噜久久中文字免| 日韩国产欧美精品一区二区三区| 国产精品白嫩初高中害羞小美女| 国产精品欧美久久久| 国产精品狼人色视频一区| 色综合天天狠天天透天天伊人| 97视频在线观看免费| 97**国产露脸精品国产| 亚洲系列中文字幕| 欧美日韩中文字幕综合视频| 久久九九全国免费精品观看| 91av网站在线播放| 亚洲国产日韩一区| 91精品综合视频| 北条麻妃一区二区在线观看| 欧美成人精品h版在线观看| 日韩专区在线播放| 国产999在线观看| 成人免费网站在线观看| 亚洲精品中文字幕女同| 欧美做爰性生交视频| 亚洲人成绝费网站色www| 亚洲成人a级网| 久久精品99国产精品酒店日本| 91久久精品美女高潮| 国产精品视频地址| 日韩中文在线中文网三级| 国产精品久久久久久久久久ktv| 国产精品一香蕉国产线看观看| 久久香蕉国产线看观看网| 精品国产欧美一区二区五十路| 欧美日韩福利视频| 亚洲人成欧美中文字幕| 日韩精品在线免费| 在线播放国产一区中文字幕剧情欧美| 在线观看精品国产视频| 最近2019好看的中文字幕免费| 97精品国产97久久久久久春色| 亚洲图片制服诱惑| 日韩欧美成人区| 久久久久久久国产精品| 日韩精品在线观看一区| 亚洲欧美激情精品一区二区| 国产精品美腿一区在线看| 亚洲成**性毛茸茸| 亚洲视频一区二区三区| 欧美激情在线观看视频| 亚洲精品av在线播放| 三级精品视频久久久久| 欧美激情精品久久久| 亚洲欧美国产另类| 欧美电影免费观看高清完整| 怡红院精品视频| 最近2019免费中文字幕视频三| 亚洲最大的成人网| 亚洲精品视频免费在线观看| 欧美老女人性生活| 亚洲精品日产aⅴ| 日韩经典一区二区三区| 成人www视频在线观看| www.欧美免费| 5252色成人免费视频| 国内精品久久久久| 欧美色道久久88综合亚洲精品| 国产免费一区二区三区在线能观看| 亚洲乱码av中文一区二区| 成人午夜激情网| 亚洲精品一区中文字幕乱码| 色偷偷偷综合中文字幕;dd| 亚洲美女av电影| 日韩一区av在线| 亚洲国产精品大全| 成人精品久久久| 亚洲国产精彩中文乱码av| 人人做人人澡人人爽欧美| 久久91超碰青草是什么| 国产综合福利在线| 国产精品永久免费视频| 国产精品美女www| 日韩国产在线看| 欧美肥老太性生活视频| 91精品国产一区| 91免费精品国偷自产在线| 欧美理论电影网| 欧美日韩在线第一页| 久久影视电视剧免费网站清宫辞电视| 精品日本高清在线播放| 日韩成人在线电影网| 欧美激情精品久久久久| 久久资源免费视频| 日韩精品中文字幕有码专区| 日韩成人在线视频网站| 欧美午夜精品久久久久久浪潮| 久久免费高清视频| 国产日韩换脸av一区在线观看| 91精品国产91久久久久久| 亚洲精品久久久久久久久| 91青草视频久久| 亚洲在线免费看| 免费97视频在线精品国自产拍| 日韩精品视频观看| 国产一区二区在线免费| 欧美日韩中文字幕| 日韩在线视频播放| 国产成人精品久久| 国产美女扒开尿口久久久| 欧美成人激情视频免费观看| 久热精品视频在线观看| 亚洲精品中文字幕av| 精品国产精品三级精品av网址| 国产精品国产三级国产专播精品人| 5566成人精品视频免费| 国产区亚洲区欧美区| 91精品国产高清自在线看超| 中文字幕亚洲天堂| 91丝袜美腿美女视频网站| 亚洲欧美中文在线视频| 国产精品久久久久久久av大片| 国产成人一区二区在线| 日韩国产一区三区| 久久国内精品一国内精品| 超薄丝袜一区二区| 精品国产31久久久久久| 国产亚洲精品久久久久久| 欧美诱惑福利视频| 日韩精品视频在线观看免费| 欧美亚洲视频在线看网址| 欧美人在线观看| 欧美激情性做爰免费视频| 成人精品一区二区三区电影黑人| 久久综合久中文字幕青草| 亚洲成人激情在线观看|