# Class SettingsHelper Namespace: [CapyKit.Helpers](CapyKit.Helpers.md) Assembly: CapyKit.dll Static class containing helper methods for retrieving and setting application settings. ```csharp public static class SettingsHelper ``` #### Inheritance [object](https://learn.microsoft.com/dotnet/api/system.object) ← [SettingsHelper](CapyKit.Helpers.SettingsHelper.md) #### Inherited Members [object.Equals\(object?\)](https://learn.microsoft.com/dotnet/api/system.object.equals\#system\-object\-equals\(system\-object\)), [object.Equals\(object?, object?\)](https://learn.microsoft.com/dotnet/api/system.object.equals\#system\-object\-equals\(system\-object\-system\-object\)), [object.GetHashCode\(\)](https://learn.microsoft.com/dotnet/api/system.object.gethashcode), [object.GetType\(\)](https://learn.microsoft.com/dotnet/api/system.object.gettype), [object.MemberwiseClone\(\)](https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone), [object.ReferenceEquals\(object?, object?\)](https://learn.microsoft.com/dotnet/api/system.object.referenceequals), [object.ToString\(\)](https://learn.microsoft.com/dotnet/api/system.object.tostring) #### Extension Methods [ObjectExtensions.UpdateProperties\(object, object\)](CapyKit.Extensions.ObjectExtensions.md\#CapyKit\_Extensions\_ObjectExtensions\_UpdateProperties\_System\_Object\_System\_Object\_) ## Examples This example demonstrates how to set up the SettingsHelper class with custom accessor and detector methods that read from an App.config file. The setup is done at the beginning of the application execution, before any other usage of the helper methods.
public int main(string[] args)
{
   // Set up SettingsHelper with custom accessor and detector methods
   Func<string, object> accessor = (key) =>
   {
       Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
       return config.AppSettings.Settings[key].Value;
   };

   Func<string, bool> detector = (key) =>
   {
       Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
       return config.AppSettings.Settings.AllKeys.Contains(key);
   };

   SettingsHelper.SetAccessorMethod(accessor);
   SettingsHelper.SetDetectorMethod(detector);

   // Use the helper to retrieve and set settings
   SettingsHelper.SetApplicationSetting<int>("MySettingKey", 42);
   int newSetting = SettingsHelper.GetApplicationSetting<int>("MySettingKey");
   Console.WriteLine("New setting: {0}", newSetting);

   int mySetting = SettingsHelper.GetApplicationSetting<int>("MySettingKey");
   Console.WriteLine("Retrieved setting: {0}", mySetting);
}
## Remarks The specific means of accessing and storing the settings are determined by the consumer, allowing for flexibility in various environments such as App.config or Web.config . ## Methods ### GetApplicationSetting\(string\) Retrieves a setting with the given key. ```csharp public static T GetApplicationSetting(string settingName) ``` #### Parameters `settingName` [string](https://learn.microsoft.com/dotnet/api/system.string) The name of the setting to retrieve. #### Returns T The value of the setting as an uncast T. #### Type Parameters `T` The type of the setting to be retrieved. ### SetAccessorMethod\(Func\) Sets the function used to retrieve application settings. ```csharp public static void SetAccessorMethod(Func accessor) ``` #### Parameters `accessor` [Func](https://learn.microsoft.com/dotnet/api/system.func\-2)<[string](https://learn.microsoft.com/dotnet/api/system.string), [object](https://learn.microsoft.com/dotnet/api/system.object)\> The new function used to retrieve application settings. #### Exceptions [ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception) Thrown when one or more required arguments are null. ### SetDetectorMethod\(Func\) Sets the function used to detect if an application setting with a given key exists. ```csharp public static void SetDetectorMethod(Func detector) ``` #### Parameters `detector` [Func](https://learn.microsoft.com/dotnet/api/system.func\-2)<[string](https://learn.microsoft.com/dotnet/api/system.string), [bool](https://learn.microsoft.com/dotnet/api/system.boolean)\> The new function used to detect if an application setting exists. #### Exceptions [ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception) Thrown when one or more required arguments are null.