2015-01-10 1 views
1

Я работаю над проектом, который должен хранить настройки, которые будут доступны только для одного приложения, а также параметры, которые должны быть доступны для нескольких приложений (которые будут записаны в будущем).Как сохранить настройки, доступные для нескольких приложений в .NET?

Я знаю на Java, что есть класс Preferences, который имеет Preferences.systemRoot(), узел предпочтений, который хранится независимо от любого узла приложения в системном реестре (в Windows, OSX я понятия не имею). Я также знаю, что .Net-настройки хранятся в каталоге %appdata%, и это нормально. Какое бы ни было хорошо для меня.

Что мне нужно знать - это .Net имеет эквивалент настройки Java Preferences.systemRoot()?

+1

В каком .NET приложении вы говорите? Кроме того, реестр следует избегать – Sievajet

+0

Я не говорю о сохранении значений в реестре, я говорю о функциональности, полученной с помощью Preferences.systemRoot() Java, которая позволяет хранить значения, доступные для всех программ. Это то, что я хочу ... Хм, думаю, я действительно не очень хорошо это говорил, хотя ... – Will

+0

Вы можете использовать значение «Environment.System» http://msdn.microsoft.com/en-us/library/system.environment .specialfolder% 28v = vs.110% 29.aspx –

ответ

0

Для этого нет встроенных функций.

У вас есть несколько вариантов, хотя - в определенном порядке.

  1. сохранить настройки в виде файла в% AppData%

  2. сохранить настройки в базе данных

  3. Хранить настройки в реестре (как и другие упомянутые, это не отличная идея).

  4. Сохраните настройки в «облаке».

Пример варианта 1 будет:

Dim settingsDirectory as String = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) 
Dim fileName As String = "the name of the settings file.xml" 
Dim settingsPath As String = String.Empty 

settingsDirectory = Path.Combine(settingsDirectory, "Your Company Name here") 
If Not Directory.Exists(settingsDirectory) Then 
    Directory.Create(settingsDirectory) 
End If 
settingsPath = Path.Combine(settingsDirectory, fileName) 
' Read or write your settings file here. 

Есть много жизнеспособных вариантов. Это далеко не полный список. У каждого варианта есть свои плюсы и минусы, которые вам нужно будет лапнуть для вашего конкретного варианта использования.

+0

Мы сохраняем значения в базе данных, однако нам нужна резервная копия, потому что наши клиенты - параноидальные маленькие газели, которые запускают свои системы в автономном режиме для ... причин. Что касается вашего списка параметров, мне нравится # 1, для чего я собираюсь, но мне нужно знать, как я буду обращаться к этому конкретному объекту настроек из нескольких разных приложений. – Will

+0

добавлен пример базового кода. –

+0

Спасибо. Это не совсем то, что я имел в виду, я хотел воспользоваться API-интерфейсом .Net (вероятно, не подходящим для родного). – Will