Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Configuration;
- using System.Diagnostics;
- namespace BA.Core.Configuration {
- public sealed class AppSettingsParser {
- public static T Parse<T>(string settingName) {
- return Parse<T>(settingName,default(T),false,false,false);
- }
- public static T Parse<T>(string settingName,T defaultValue) {
- return Parse<T>(settingName,defaultValue,false,false,false);
- }
- public static T Parse<T>(string settingName,T defaultValue,bool logError) {
- return Parse<T>(settingName,defaultValue,logError,false,false);
- }
- public static T Parse<T>(string settingName,T defaultValue,bool logError,bool throwError) {
- return Parse<T>(settingName,defaultValue,logError,throwError,false);
- }
- public static T ParseEnum<T>(string settingName) {
- return Parse<T>(settingName,default(T),false,false,true);
- }
- public static T ParseEnum<T>(string settingName,T defaultValue) {
- return Parse<T>(settingName,defaultValue,false,false,true);
- }
- public static T ParseEnum<T>(string settingName,T defaultValue,bool logError) {
- return Parse<T>(settingName,defaultValue,logError,false,true);
- }
- public static T ParseEnum<T>(string settingName,T defaultValue,bool logError,bool throwError) {
- return Parse<T>(settingName,defaultValue,logError,throwError,true);
- }
- private static T Parse<T>(string settingName,T defaultValue,bool logError,bool throwError,bool isEnum) {
- T parsedValue = default(T);
- string settingValue = ConfigurationManager.AppSettings[settingName];
- try {
- if(settingValue != null) {
- if(isEnum) {
- parsedValue = (T)Enum.Parse(typeof(T),settingValue);
- }
- else
- parsedValue = (T)Convert.ChangeType(settingValue,typeof(T));
- }
- else {
- if(throwError)
- throw new ArgumentNullException(settingName,"The AppSettings value is missing for " + settingName);
- if(logError) {
- EventLog.WriteEntry("AppSettingsHelper","The AppSettings value is missing for " + settingName,EventLogEntryType.Warning);
- }
- return defaultValue;
- }
- }
- catch(Exception error) {
- parsedValue = defaultValue;
- if(logError) {
- if(!string.IsNullOrEmpty(settingValue))
- EventLog.WriteEntry("AppSettingsHelper","The AppSettings value is an invalid " + typeof(T).Name + " and could not be parsed. " + settingName + " - " + settingValue + " ERROR: " + error.Message,EventLogEntryType.Warning);
- else
- EventLog.WriteEntry("AppSettingsHelper","The AppSettings value is missing for " + settingName + " ERROR: " + error.Message,EventLogEntryType.Warning);
- }
- if(throwError)
- throw;
- }
- return parsedValue;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment