Documentation Center

Sample .NET CIL extension: a custom configuration provider

This simple configuration provider gives the minimum CIL settings.

// A simple configuration provider that gives minimum required CIL settings
public class AppConfigProvider : IApplicationConfigurationReader
{
  // CIL settings to use.
  private readonly Dictionary<string, string> _settings - new Dictionary<string, string>
  {
    {"discovery-service-uri", "https://HOSTNAME:PORT/discovery.svc"},
    {"oauth-enabled", "true"},
    {"oauth-client-id", "USER"},
    {"oauth-client-secret", "PASSWORD"},
  };

  public string GetSecureSetting(string settingName, string defaultValue = "")
    => _settings.ContainsKey(settingName) ? _settings[settingName] : defaultValue;

  public string GetSecureSettingWithFallback(string settingName, string defaultValue = "")
    => _settings.ContainsKey(settingName) ? _settings[settingName] : defaultValue;

  public string GetSecureSettingWithFallback<T>(string settingName, T defaultValue)
    => _settings.ContainsKey(settingName) ? _settings[settingName].Convert<T>(defaultValue) : defaultValue;

  public string GetSetting(string settingName, string defaultValue = "")
    => _settings.ContainsKey(settingName) ? _settings[settingName] : defaultValue;

  public string GetSetting<T>(string settingName, T defaultValue)
    => _settings.ContainsKey(settingName) ? _settings[settingName].Convert<T>(defaultValue) : defaultValue;

  public ConfigurationSection GetSection(string sectionName)
    => null;
}
where:
  • HOSTNAME is the name of the host on which the Discovery Service runs
  • PORT is the port in which the Discovery Service runs (8082 by default)
  • USER is the name of a user who can connect to the Discovery Service (cduser by default)
  • PASSWORD is a valid password for USER.