2011-01-14 2 views
0

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

Я не вижу метода использования стандартных методов 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") 

Но не может найти метод retriving ключ проверить, действительно ли это exis ts и, что более важно, увеличить значение?

Спасибо.

ответ

1

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

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

Смежные вопросы