ModuleInitializers.cs 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. using System.Runtime.CompilerServices;
  2. using System.Diagnostics.CodeAnalysis;
  3. namespace Terminal.Gui;
  4. /// <summary>
  5. /// Contains module initializers that run when the Terminal.Gui assembly is loaded.
  6. /// </summary>
  7. internal static class ModuleInitializers
  8. {
  9. /// <summary>
  10. /// Initializes the ConfigurationManager when the Terminal.Gui assembly is loaded.
  11. /// Ensures configuration properties are loaded deterministically before any part
  12. /// of the library is used.
  13. /// </summary>
  14. [RequiresUnreferencedCode ("AOT")]
  15. #pragma warning disable CA2255
  16. [ModuleInitializer]
  17. [RequiresDynamicCode ("Calls Terminal.Gui.ConfigurationManager.Initialize()")]
  18. #pragma warning restore CA2255
  19. internal static void InitializeConfigurationManager ()
  20. {
  21. // Initialize ConfigurationManager to ensure all configuration properties
  22. // are loaded deterministically
  23. ConfigurationManager.Initialize ();
  24. // Note: We're only initializing the config properties structure here,
  25. // not loading settings from files. That still happens during Application.Init()
  26. // via InitializeConfigurationManagement()
  27. }
  28. }