VB.Net Как мне читать / писать пользовательский файл конфигурации - PullRequest
0 голосов
/ 06 января 2011

Среда: .Net 3.5 VB.net (C # тоже хорошо)

Я написал многопроектное приложение WinForms, которое должно загрузить пару десятков переменных из клиентского разделафайл конфигурации, основанный на выборе пользователя клиентом.Также некоторые программные переменные должны быть загружены.Пока все хорошо, я поместил их в файл app.config.

В разделе appsettings я поместил основные переменные программы.Например,
<appSettings>
<add key="LocalServerName" value="PHILDESKTOP" /> ...
, и я создал раздел ClientParameters для выбираемых.Например, <ClientParameters><br> <Cust1><br> <setting name="ClientName" serializeAs="String"><br> <value>Customer Name 1</value><br> </setting>
...

Вот моя проблема:
- Я развернут с помощью Click Once, и файл app.exe.config трудно найти, чтобы внести изменения
-Я обнаружил, что файл app.config не может быть записан по уважительной причине ... он загружается в память во время запуска программы.
- Мне нужен администратор, чтобы иметь возможность добавлять / обновлять раздел клиентапараметры после развертывания.Я хочу запрограммировать эту возможность с помощью ListView или чего-то в этом роде.
- я думаю, что написал плохой код, который должен повторяться, чтобы найти параметр, см. Ниже

    Dim sectionName As String
    sectionName = "ClientParameters/" + ClientCode
    Dim section As System.Configuration.ClientSettingsSection = _
       DirectCast(System.Configuration.ConfigurationManager.GetSection(sectionName),  _
       System.Configuration.ClientSettingsSection)
    For Each setting As System.Configuration.SettingElement In section.Settings
        Dim value As String = setting.Value.ValueXml.InnerText
        Dim name As String = setting.Name
        If name.ToLower = SettingName.ToLower Then
            Return value
        End If
    Next

Так что я хочу сделать, это разделитьот клиентского раздела app.config и создайте что-то вроде client.config.

Мне нужен хороший пример XML-кода для чтения / записи в:
- загрузить client.configфайл
- выбрать определенный клиентский раздел
- загрузить переменные моего клиента из значений в этом разделе

Кто-нибудь получил несколько хороших ссылок или советов?

Ответы [ 3 ]

3 голосов
/ 06 января 2011

Можете ли вы просто использовать встроенные настройки? Вот учебник .Любые настройки, определяемые как Пользователь, могут быть отредактированы с помощью My.Settings «пространства имен».Нет чтения / записи XML, и все строго напечатано.Все объекты, относящиеся к Application, в основном доступны только для чтения.

    'Set value
    My.Settings.FirstName = "Chris"

    'Load value
    Dim F = My.Settings.FirstName

    'Persist values
    My.Settings.Save()
2 голосов
/ 06 января 2011

Это вопрос XY.Вы запрашиваете решение для Y, в то время как проблема real - X. Предполагается, что AppSettings будет легким для чтения.Когда вы попадаете в ситуацию, когда внезапно перестает быть легко читаемым, то AppSetting для вас бесполезен.

Не уверен, что может быть лучшее решение, нет больших подсказок в вашем вопросе.Мне кажется, что ClickOnce - это то, что доставляет вам неприятности.Проблема W.

0 голосов
/ 06 января 2011

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

http://www.endswithsaurus.com/search/label/app.config

...