Обновление пары ключей приложения app.config - PullRequest
0 голосов
/ 14 января 2011

Я пытаюсь изменить файл app.config, который не является частью моего приложения .net.Мой ключ должен быть уникальным и отображаться под статическим ключом (Server1 или Server2), поскольку другое приложение считывает эти значения построчно, связывая значение базы данных (n) со значением server (n).

IНе удается увидеть метод использования стандартных методов app.config для внешнего файла .config, поэтому я использую класс Xml Document.

Пример XML-файла:

<add key="server1" value="SERVER\SQL2000" />
<add key="database1" value="ggfd" />
<add key="database2" value="dvdv" />

<add key="server2" value="SERVER\SQL2005" />
<add key="database3" value="trvs" />
<add key="database4" value="tgdfs" />
<add key="database5" value="trvs" />

Я могу читать \ записывать новые узлы:

Dim MyKey As String = "database" & No?
    Dim XmlDocument As New XmlDocument
    Dim XmlNode As XmlNode
    Dim XmlRoot As XmlNode
    Dim XmlKey As XmlNode
    Dim XmlValue As XmlNode

    Save_Config_Parameter = ""
    XmlDocument.Load("app.config")

    XmlNode = XmlDocument.DocumentElement.SelectSingleNode("/configuration/appSettings/add[@key=""" & MyKey & """]")

    If XmlNode Is Nothing Then


        XmlNode = XmlDocument.CreateNode(XmlNodeType.Element, "add", "")
        XmlKey = XmlDocument.CreateNode(XmlNodeType.Attribute, "key", "")
        XmlKey.Value = MyKey
        XmlNode.Attributes.SetNamedItem(XmlKey)
        XmlValue = XmlDocument.CreateNode(XmlNodeType.Attribute, "value", "")
        XmlValue.Value = MyValue
        XmlNode.Attributes.SetNamedItem(XmlValue)

        XmlRoot = XmlDocument.DocumentElement.SelectSingleNode("/configuration/appSettings")
        If Not XmlRoot Is Nothing Then
            XmlRoot.AppendChild(XmlNode)
        Else
            Save_Config_Parameter = "ERROR"
        End If
    Else

        XmlNode.Attributes.GetNamedItem("value").Value = MyValue

    End If

    XmlDocument.Save("app.config")

Но не могу найти метод повторного получения ключа, чтобы проверить, существует ли он, и, что более важно, увеличить значение?

Спасибо.

1 Ответ

1 голос
/ 14 января 2011

Я думаю, вы уже на правильном пути. Вы уже рассматриваете способы захвата элементов по ключу, чтобы вы могли увеличить их и посмотреть, не было ли оно там.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...