Petshop4.0之“反射注入”技術

來源:互聯網
上載者:User
所謂“依懶注入”

就是將應用程式所依賴的組件在運行時動態載入到應用
程式中。依賴注入的目標並非為應用程式添加更多的功能,而是提升了組件的
重用性,並為應用程式搭建一個具有較強靈活性和擴充性的平台。在程式實現上就用
Assembly.Load(AssemblyName).CreateInstance(typeName)在程式運行時動態建立執行個體.PetShop4.0中多次應用了與設定檔相強合的反射注入技術。下面就介紹一下反射注入技術在PetShop4.0多層應用程式和應用。  

項目名 PetShop.CacheDependencyFactory
類名 DependencyAccess 方法 privatestaticIPetShopCacheDependency LoadInstance(string className)
設定檔中的值 <appSetting>……….<add key="CacheDependencyAssembly" value="PetShop.TableCacheDependency"/>……</appSetting>
代碼檔案中的實現 string path=ConfigurationManager.AppSettings["CacheDependencyAssembly"];string fullyQualifiedClass = path + "." + className;return (IPetShopCacheDependency)Assembly.Load(path).CreateInstance(fullyQualifiedClass);
從上面的實現來看其實是很簡單的。三個步驟就實現了:兩前個步驟,主要是為動態建立執行個體提供參數:程式集名稱,和類名稱(類型名).1.    執行ConfigurationManager.AppSettings[“keyName”]來擷取設定檔中的索引值,也就程式集的名稱AssemblyName。2.    組合類別名稱typeName。3.    執行Assembly.Load(AssemblyName).CreateInstance(typeName)進行動太建立執行個體其實PetShop4.0中實現反射注入技術都是上面的那種思想。所以下面就省去設定檔中的資訊和實現的代碼實現資訊,只是統計反射注入技術在PetShop4.0中應用的位置資訊。

項目名 PetShop.DALFactory
類名 DataAccess
方法 1.    public static PetShop.IDAL.ICategory CreateCategory()2.       public static PetShop.IDAL.IInventory CreateInventory()3.       public static PetShop.IDAL.IItem CreateItem()4.       public static PetShop.IDAL.IOrder CreateOrder()5.       public static PetShop.IDAL.IProduct CreateProduct()
項目名 PetShop.MessagingFactory
類名 QueueAccess
方法 public static PetShop.IMessaging.IOrder CreateOrder()

 

項目名 PetShop.ProfileDALFactory
類名 DataAccess
方法 Publics taticPetShop.IProfileDAL.IPetShopProfileProviderCreatePetShopProfileProvider()

 

項目名 PetShop.ProfileDALFactory
類名 DataAccess
方法 Publics taticPetShop.IProfileDAL.IPetShopProfileProviderCreatePetShopProfileProvider()


 

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1534129

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.