Files
DP44/docs/ai/DataPRO/DataPRO.Core/Config.md
2026-04-17 14:55:32 -04:00

2.4 KiB

source_files, generated_at, model, schema_version, sha256
source_files generated_at model schema_version sha256
DataPRO/DataPRO.Core/Config/DataProConfig.cs
2026-04-17T16:11:20.599916+00:00 zai-org/GLM-5-FP8 1 c85bf33b30f4fe33

Config

Purpose

This module provides centralized access to a custom application configuration file, abstracting away the details of System.Configuration. It exists to allow the application to read settings from a non-default config file path defined by DataProConstants.CustomConfigPath, enabling configuration separation from the main executable.

Public Interface

DataProConfig (static class)

  • static Configuration AltConfig { get; } — Returns the Configuration object mapped to the custom config file. Useful for advanced configuration operations not covered by helper methods.
  • static string GetAppSetting(string key) — Retrieves an application setting value by key from the <appSettings> section. Returns String.Empty if the key is not found.
  • static object GetSection(string sectionName) — Retrieves a named configuration section from the config file. Used by plugin code to access custom sections.

Invariants

  • The static constructor runs exactly once, before any member is accessed.
  • Config is initialized via ConfigurationManager.OpenMappedExeConfiguration with ConfigurationUserLevel.None and will never be null after static construction.
  • GetAppSetting always returns a non-null string (empty string if key missing).
  • The configuration file path is determined by DataProConstants.CustomConfigPath and cannot be changed at runtime.

Dependencies

  • Depends on: System.Configuration, DataProConstants (specifically DataProConstants.CustomConfigPath).
  • Depended on by: Unknown from source alone—likely consumed by plugin code and core application components requiring configuration access.

Gotchas

  • If DataProConstants.CustomConfigPath points to a non-existent or malformed config file, the static constructor will throw an exception, rendering the entire class unusable for the application lifetime.
  • GetAppSetting performs a linear search through Config.AppSettings.Settings using LINQ; performance may degrade with very large numbers of settings.
  • The third parameter true passed to OpenMappedExeConfiguration is undocumented in the source context—it appears to be a boolean for "preload" behavior, but its exact effect is unclear from source alone.