Leyendo los valores clave de la sección de configuración personalizada en C #

Necesito leer valores clave de secciones personalizadas en app / web.config.

Fui a traves

Leyendo una clave desde el Web.Config usando ConfigurationManager

y

¿Cómo puedo recuperar la lista de secciones de configuración personalizada en el archivo .config usando C #?

Sin embargo, no especifican cómo leer una sección personalizada cuando necesitamos especificar explícitamente la ruta al archivo de configuración (en mi caso, el archivo de configuración no está en su ubicación predeterminada)

Ejemplo de mi archivo web.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <MyCustomTag> 
    <add key="key1" value="value1" />
    <add key="key2" value="value2" />
  </MyCustomTag>
<system.web>
  <compilation related data />
 </system.web> 
</configuration>

en el que necesito leer pares de valores clave dentro de MyCustomTag.

Cuando lo intento (configFilePath es la ruta a mi archivo de configuración):

var configFileMap = new ExeConfigurationFileMap { ExeConfigFilename = configFilePath };

var config =
          ConfigurationManager.OpenMappedExeConfiguration(
            configFileMap, ConfigurationUserLevel.None);

        ConfigurationSection section = config.GetSection(sectionName);

        return section[keyName].Value;

Recibo un error que indica "No se puede acceder al indexador interno protegido 'esto' aquí" en la sección [nombreClave]

Respuestas a la pregunta(2)

Su respuesta a la pregunta