Использование файла конфигурации в общедоступном классе

#xml #class #config

#xml #класс #конфигурация

Вопрос:

Возможно ли загрузить файл конфигурации, содержащий соединение с сервером, используя конструктор класса и сохраняя его в общедоступной статической строке. Например,

Config.xml

 <Config>
  <ConnString> "server=...; user id =...; user pass=...; database=...";</ConnString>
</Config>
 

Код:

 namespace Connection.Settings
{

public class Settings
{
    public Settings()
    {
    XmlDocument cfg = new XmlDocument();
    cfg.Load("Config.xml");
    connection = cfg.SelectSingleNode("/Config/ConnString").InnerText;

    }


    public static string connection;
    public string Connection
    {
        get
        {
            return connection;
        }
    }

    public static string ConnectionString = connection;
}
}
 

Причина этого заключается в том, что соединение может быть общим для многих приложений, и все же я мог бы легко изменить соединение в XML-файле без необходимости прикасаться к приложениям.

Комментарии:

1. Я настоятельно рекомендую вам узнать, как работает конфигурация в .NET.

Ответ №1:

Да, это возможно. AppConfig, вероятно, является наиболее распространенным местом для хранения строк подключения, но это не обязательно. Пока все ваши приложения могут получить доступ к файлу, в котором вы хотите его сохранить, он может использоваться в качестве общего источника для различных настроек конфигурации.

Я не пробовал ваш пример кода, но что-то вроде:

 var conf = XDocument.Load(filenamehere.XML);
var connection = (from c in conf.Decendents("Config")
                  select c.Element("ConnString")).SingleOrDefault();
 

следует восстановить настройку из вашего XML.