Configuratiemanager gebruiken

Ik wil App.config gebruiken om bepaalde instellingen op te slaan.
Ik heb geprobeerd de volgende code te gebruiken om een parameter uit een configuratiebestand te halen.

private string GetSettingValue(string paramName)
{
    return String.Format(ConfigurationManager.AppSettings[paramName]);
}

Ik heb er ook System.Configurationvoor toegevoegd (ik heb een aparte klasse gebruikt), en in het App.config-bestand heb ik:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>
  <appSettings>
    <add key ="key1" value ="Sample" />
  </appSettings>
</configuration>

Maar ik kreeg een foutmelding bij het gebruik van ConfigurationManagerConfigurationManager can't exist in such context, maar ik heb System.Configuration. Of heb ik iets gemist?

BEWERKEN:

klasse met configuratie (volledige weergave)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Configuration;
namespace browser
{
    class ConfigFile
    {
        private string GetSettingValue(string paramName)
        {
            return String.Format(ConfigurationManager.AppSettings[paramName]);
        }
    }
}

EDIT2

Voeg toe hoe het eruit ziet

Dit betekent dat het probleem zich niet voordoet tijdens het gebruik van ConfigurationMangermaar ervoor – het programma “zegt” dat het “een dergelijk element niet kent”, aangezien ik de fout begrijp – de “Element ConfigurationManager” niet bestaat niet in een dergelijke context”

EDIT3

BEWERK 4


Antwoord 1, autoriteit 100%

Ok, het duurde even voordat ik dit zag, maar dit compileert niet:

return String.(ConfigurationManager.AppSettings[paramName]);

Je roept niet eens een methode aan van het type String. Doe dit gewoon:

return ConfigurationManager.AppSettings[paramName];

De AppSettingsKeyValuePair retourneert al een string. Als de naam niet bestaat, wordt nullgeretourneerd.


Op basis van uw bewerking heeft u nog geen een referentie toegevoegdaan de System.Configuration-assembly voor het project waaraan u werkt.


Antwoord 2, autoriteit 18%

Ga naar tools>> nuget>> consoleen typ:

Install-Package System.Configuration.ConfigurationManager 

Als je een specifieke versie wilt:

Install-Package System.Configuration.ConfigurationManager -Version 4.5.0

Uw ConfigurationManagerdllwordt nu geïmporteerd en de code begint te werken.


Antwoord 3

Ik heb wat antwoorden gevonden, maar ik weet niet of dit de juiste manier is. Dit is mijn oplossing voor nu. Gelukkig heeft het mijn ontwerpmodus niet verbroken.

   `
    /// <summary>
    /// set config, if key is not in file, create
    /// </summary>
    /// <param name="key">Nome do parâmetro</param>
    /// <param name="value">Valor do parâmetro</param>
    public static void SetConfig(string key, string value)
    {
        var configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
        var settings = configFile.AppSettings.Settings;
        if (settings[key] == null)
        {
            settings.Add(key, value);
        }
        else
        {
            settings[key].Value = value;
        }
        configFile.Save(ConfigurationSaveMode.Modified);
        ConfigurationManager.RefreshSection(configFile.AppSettings.SectionInformation.Name);
    }
    /// <summary>
    /// Get key value, if not found, return null
    /// </summary>
    /// <param name="key"></param>
    /// <returns>null if key is not found, else string with value</returns>
    public static string GetConfig(string key)
    {
        return ConfigurationManager.AppSettings[key];
    }`

Antwoord 4

Voeg een verwijzing naar System.Configuration.dll toe door deze stappen te volgen:

Selecteer Referentie toevoegen in het menu Project.
Selecteer in het dialoogvenster Referentie toevoegen het tabblad .NET.
Zoek en selecteer de componentnaam van System.Configuration.
selecteer OK.

Dit zou de ConfigurationManager moeten toevoegen

winkel en ophalen van aangepaste informatie vanuit een toepassingsconfiguratiebestand

Other episodes