|
軟件設計有一句話叫做約定優于配置,很多人將其作為拒絕配置的理由。但是,約定和配置的使用,都有個度的問題。我不贊為了所謂的擴展性,為你的應用設計一套只有你自己才能看懂的配置體系。但是,在很多場景中,配置是提供應用靈活度的首要甚至是唯一途徑。對于框架的設計者來說,對于配置的駕馭是一項基本的技能。
可能你很少使用自定義配置,可能你理解的自定義配置僅僅限于AppSetting,不過我想你應該對于System.Configuration這個命名空間下的幾個基本的類型有基本的了解。比如ConfigurationSection、ConfigurationElement、ConfigurationElementCollection等。本篇文章不會介紹關于System.Configuration的基礎知識,而是通過一個簡單的例子為你講述一些所謂高級的知識點,比如不可識別配置元素的動態解析。(源代碼從這里下載)
目錄
一、通過自定義配置實現的最終效果
二、相關配置類型的定義
三、兩個重要的類型:NameTypeConfigurationElement和NameTypeConfigurationElementCollectionT
四、ResourceProviderFactory的定義
五、補充
一、通過自定義配置實現的最終效果
為了讓大家對自定義配置的作用有一個深刻的映像,我們先來給出一個簡單的例子。我們采用在《.NET的資源并不限于.resx文件,你可以采用任意存儲形式》中介紹的關于自定義ResourceManager以實現對多種資源存儲形式的支持。現在只關注與資源的讀取,我們將基于不同存儲形式的資源讀取操作實現在相應的ResourceProovider中,它們實現如下一個簡單的IResourceProvider接口。
1: public interface IResourceProvider
2: {
3: object GetObject(string key);
4: }
NET技術:通過自定義配置實現插件式設計,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。