![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| Stolzen |
|
||||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1041 Регистрация: 17.10.2005 Репутация: нет Всего: 48 |
Приветствую!
Возникла проблема с изменением настроек одного приложения через другое. Храню все настройки основного приложения (пр1) в Properties.Settings
Потребовалось изменять настройки для пр1 через другое приложение - вспомогательную утилиту (пр2). Что я сделал: 1. Изменил в Settings.cs internal sealed partial class Settings на public partial class Settings, т.е. сделал его доступным. 2. Подключил окружение пр1 в пр2 и загружал настройки следующим образом:
А пытался сохранить вот так:
В результате - пр2 загружает вовсе не то, что надо (загружает оно дефолтные настройки) и сохраняет все настройки в другую директорию под своим именем (AdminTool.vshost.exe_ <...>) Как бы заставить это все работать, как надо? Чтобы из пр2 изменения вносились в xml-файл настроек для пр1? Хотелось бы какого-нибудь красивого гибкого решения, а не просто напрямую указывать путь до файла настроек и править его. Есть идеи? Спасибо. |
||||||
|
|||||||
| Мурлыкатам_ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 265 Регистрация: 5.2.2007 Где: город-герой Минск Репутация: нет Всего: 2 |
Используй стандартный файл конфигурации .net - app.config.xml
Вся работа с ним реализована в стандартном классе: http://msdn.microsoft.com/en-us/library/sy...28VS.80%29.aspx Очень много материала про это в МСДН. Если нун изменить настройки из другого приложения: 1) В первом реализуешь проверку, что файл конфига был изменен (на ласт модифаед дату) 2) во втором реализуешь чтение хмл документа, т.е. берешь у первого приложения его конфиг как хмл файл и твори с ним че хочешь. Потом сохраняешь файл во втором приложении. 3) Первое приложение заметив что файл изменился - поднимает заново настройки. А лучше сделать все ремотингом |
|||
|
||||
| Stolzen |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1041 Регистрация: 17.10.2005 Репутация: нет Всего: 48 |
Собственно, его и использую. Только через Properties.Settings. Спасибо за наводку, поковыряю ConfigurationManager (по ссылке пишут, что This class replaces the ConfigurationSettings class, which is deprecated.) А вот этого как раз хотелось бы и избежать. Во-первых, сложно знать, куда именно Properties.Settings сохранит свой xml (там директории создаются вида CommodityCirculation.vsho_StrongName_uxpyaewqage3pphrrzfcglb42er2g1ky, т.е. с кучей рандомной ерунды на хвосте. Отчего так - я не знаю, наверное, чтобы настройки одной версии не пересекались с настройками другой? Вообще конечно можно получить список папок, взять ту, которая изменена самой последней - и вперед. Оставлю это как самый последний вариант, верится мне, что где-то существует более изящное решение. Пока покопаю в сторону ConfigurationManager. А вот последнее (.Net Remoting) звучит интересно. Попадалось мне что-то про это, надо бы почитать. Это сообщение отредактировал(а) Stolzen - 23.10.2010, 00:37 |
|||
|
||||
| inbruk |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 25.11.2010 Репутация: нет Всего: нет |
вот здесь пример программы, которая меняет app.Config себе, но при не значительном изменении она сможет менять appConfig другой программе:
Как создавать, читать, изменять, удалять конфигурацию в файле app.Config на C# А вот тут пример как менять значения в реестре, таким образом тоже можно сделать то что ты хочешь: Как читать/писать данные в ключ реестра на C# |
|||
|
||||
| Stolzen |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1041 Регистрация: 17.10.2005 Репутация: нет Всего: 48 |
Спасибо большое, в принципе проблему решил (правда, через одно место). Но для себя прочту - в будущем наверняка пригодится.
|
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |