Существует ли стандартный способ хранения произвольных настроек в файле XML для использования .net? - PullRequest
1 голос
/ 17 февраля 2010

В идеале я бы использовал файлы с такой же базовой структурой, что и app.config, и покупал бы настройки, тянущиеся до тех пор, пока я мог бы получить любое «запатентованное» хранилище XML для настроек, с которым все было бы в порядке.

В идеале нужно что-то вроде:

<Root>
 <ApplicationSettings>
  <Setting key="SomeKey", value="SomeValue"/>
 </ApplicationSettings>
</Root>

Я бы назвал что-то вроде:

Settings.Get("ApplicationSettings.SomeKey");

и получите "SomeValue" в качестве результата.

Кто-нибудь знает какой-нибудь простой стандарт, обычно используемый для этого?

Ответы [ 4 ]

3 голосов
/ 17 февраля 2010

Я не уверен, что понимаю вопрос, поскольку вы, похоже, знакомы с файлом App.Config ... Есть метод, очень похожий на тот, который вы опубликовали. Создайте файл App.Config для своего проекта и вставьте в него следующий код:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <appSettings>
        <add key="Key1" value="Value1" />
        <add key="Key2" value="Value2" />
    </appSettings>
</configuration>

И тогда вы можете получить к нему доступ в своем коде, используя:

string key1= ConfigurationSettings.AppSettings["Key1"];
2 голосов
/ 17 февраля 2010

Да.

Давным-давно Крэйг Андера описал последний обработчик конфигурации, который вам когда-либо понадобится . Он использует app.config для обеспечения конфигурации. Вы можете изменить его, чтобы получить конфигурацию из другого места.

EDIT
Похоже, что вышеуказанная ссылка была перемещена
http://sites.google.com/site/craigandera/craigs-stuff/clr-workings/the-last-configuration-section-handler-i-ll-ever-need

1 голос
/ 19 февраля 2010

Стандарт заключается в использовании app.config / web.config.

Я понятия не имею, откуда вы узнали, что менять это не лучшая практика - я думаю, что кто-то пытается вас обмануть.

0 голосов
/ 17 февраля 2010

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

 Public Class Settings
     Public Function GetSetting(Byval SettingsKey As String) As String

        Dim xDoc As New XmlDocument
        xDoc.Load("app.config")
        Dim xNode As XmlNode
        xNode = xDoc.SelectSingleNode(("Settings/setting[@item='" & SettingsKey & "']"))
        If xNode Is Nothing Then
            Return String.Empty
        Else
            Return xNode.Attributes("value").Value
        End If
        xDoc = Nothing

    End Sub
End Class

А потом назови это так

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