Ошибка функции ConfigurationManager - PullRequest
0 голосов
/ 15 ноября 2011

Я кодировал проект C # и настроил файл app.config следующим образом:

<appSettings>
   <add key="smUserName" value= "XXX"/>
   <add key="smPassword" value= "XXX"/>
</appSettings>

Но тогда я не могу получить значения smUserName и smPassword из app.config:

using System.Configuration;

// more code snipped...

public static string smUserName = ConfigurationManager.AppSettings.Get("smUserName").ToString();
public static string smPassword = ConfigurationManager.AppSettings.Get("smPassword").ToString();

Несмотря на оператор using System.Configuration, компиляция этого кода приводит к ошибке «Имя ConfigurationManager не существует в текущем контексте».

Ответы [ 4 ]

4 голосов
/ 15 ноября 2011

Если проблема в том, что код не компилируется, попробуйте добавить ссылку на сборку System.Configuration.

1 голос
/ 15 ноября 2011

Какую ошибку вам дает?

Вы также можете попробовать это:

System.Configuration.AppSettingsReader reader;
public static string smPassword = reader.GetValue("smUserName", typeof(string)).ToString();

EDIT

ЕСЛИ ваша ошибка

ошибка: «Имя ConfigurationManager не существует в текущий контекст "

Как указано в комментарии, вам необходимо добавить ссылку на System.Configuration в ваш проект.

0 голосов
/ 15 ноября 2011
using System.Configuration;
// all other using as required.

public partial class Admin_UserControls_GridDisplay : System.Web.UI.UserControl
{
    public static string smUserName = ConfigurationManager.AppSettings["smUserName"].ToString();
    public static string smPassword= ConfigurationManager.AppSettings["smPassword"].ToString();
}

Если код не работает, добавьте ссылку на веб-сайт, надеюсь, это страница веб-сайта, на которой вы пытаетесь получить доступ к диспетчеру конфигурации.

0 голосов
/ 15 ноября 2011

Вы должны написать свой код, как это на C #

public static string smUserName = ConfigurationSettings.AppSettings["smUserName"];
public static string smPassword = ConfigurationSettings.AppSettings["smPassword"];

А также добавить ссылку на System.Configuration

EDIT:

Вы также можете попробовать, как следует

try
{
    AppSettingsSection appSettings =
        config.AppSettings as AppSettingsSection;
    Console.WriteLine("Section name: {0}",
            appSettings.SectionInformation.SectionName);

    // Get the AppSettings section elements.
    Console.WriteLine();
    Console.WriteLine("Using AppSettings property.");
    Console.WriteLine("Application settings:");
    // Get the KeyValueConfigurationCollection 
    // from the configuration.
    KeyValueConfigurationCollection settings =
      config.AppSettings.Settings;

    // Display each KeyValueConfigurationElement.
    foreach (KeyValueConfigurationElement keyValueElement in settings)
    {
        Console.WriteLine("Key: {0}", keyValueElement.Key);
        Console.WriteLine("Value: {0}", keyValueElement.Value);
        Console.WriteLine();
    }
}
catch (ConfigurationErrorsException e)
{
    Console.WriteLine("Using AppSettings property: {0}",
        e.ToString());
}
...