Как обновить App.config с помощью фреймворка C # 3.5? - PullRequest
0 голосов
/ 14 апреля 2011

Как обновить в C # 3.5 файл app.config или файл Settings.settings с помощью кода C #?

Пожалуйста, предоставьте мне код, связанный с поддержкой фреймворка C # 3.5 классов, но не с классами фреймворка 2.0 вобновление файла app.config.

Ответы [ 4 ]

1 голос
/ 15 апреля 2011

Я связался с этой проблемой в проекте и решил в зависимости от обстоятельств просто использовать мой собственный простой XML-файл конфигурации. Проблема в том, что app.config имеет настройки уровня приложения и уровня пользователя по определенной причине. Статья Code Project, упомянутая здесь другими, может помочь вам, но мне кажется, что это большая работа.

Простой способ создать файл XML:

<?xml version="1.0" encoding="utf-8" ?>
<paths>
  <path name="pathtofile1">
    <fullpath>\\machine1\folder1\file.txt</fullpath>
  </path>
  <path name="pathtofile2">
    <fullpath>\\machine2\folder2\file2.txt</fullpath>
  </path>
</paths>

затем используйте LINQ, чтобы получить на узле:

XDocument doc = XDocument.Load(pathToXmlfile);

var filePath1 = from c in doc.Descendants("path")
                        where (string)c.Attribute("name") == "pathtofile1"
                        select (string)c.Element("fullpath").Value;

                string thePath = filePath1.First();

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

Теперь, когда вы используете «обычный» XML-файл, вы можете использовать методы, упомянутые здесь, для его обновления. Для пример и этот блог делает хорошую работу.

0 голосов
/ 14 апреля 2011
0 голосов
/ 14 апреля 2011

пожалуйста, проверьте этот код:

сначала вы должны загрузить web.congif:

System.Configuration.Configuration config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");

, затем вы можете изменить или добавить его так:

if (config.AppSettings.Settings["YourTag"] == null)
            {
                config.AppSettings.Settings.Add("YourTag", "yourValue");
            }
else
            {
                config.AppSettings.Settings["YourTag"].Value = "yourValue";
            }
0 голосов
/ 14 апреля 2011

это xml-файл, поэтому вы можете использовать linq до xml , чтобы открыть файл

var appConfigPath = string.Format("{0}{1}.exe.config", Directory.GetCurrent(), Process.GetCurrentProcess().ProcessName);

var appConfig = XDocument.Parse(appConfigPath);

//have at it
...