File configurasi baik itu app.config maupun web.config adalah file xml yang berisi configurasi external dari aplikasi yang kita buat. Seringkali kita melakukan pemanggilan nilai pada file configurasi seperti ini.
var baseUrl = ConfigurationManager.AppSettings["BaseUrl"].ToString();
Semakin kompleks aplikasi, terkadang membuat bertambahnya nilai yang perlu di store di configurasi. Supaya configurasi kita mudah di maintenance jika ada perubahan key pada configurasi dan menghindari kesalahan pengetikan pada key, kita bisa membuat class untuk menghandle issue tersebut.
public class BLLConfiguration : ConfigurationSection { public string BaseUrl { get; set; } public static BLLConfiguration GetConfig() { var section = ConfigurationManager.GetSection("Astral/BusinessLogic"); if (section == null) throw new ConfigurationErrorsException( ErrorMessages.ConfigurationErrorsException); return (BLLConfiguration)ConfigurationManager.GetSection("Astral/BusinessLogic"); } public void LoadConfigValues(XmlNode node) { var attributeCollection = node.Attributes; if (attributeCollection["BaseUrl"] != null) BaseUrl = attributeCollection["BaseUrl"].Value; } }
public class BLLConfigurationHandler : IConfigurationSectionHandler { public Object Create(Object parent, Object configContext, XmlNode node) { var config = new BLLConfiguration(); config.LoadConfigValues(node); return config; } }
Pada web config/appconfig daftarkan section tersebut. Pada type, formatnya adalah {Namespace.ClassName},{AssemblyName}
Kemudian, assign value pada confurasi dibuat dalam satu section berdasarkan pada nama sectionGroup dan section-nya.
Pemanggilan value dari configurasi jadinya seperti ini.
var baseUrl = BLL.BLLConfiguration.GetConfig().BaseUrl;