Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Парсинг XML файла конфигурации

Добрый вечер... Обыскал все интернет, но так и не нашел нормальной реализации парсинга файла конфигураций, на c#.
Файл типа XML, такого вида:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<Config>
    <Separators>
        <Separator1>
            <Path></Path>
            <Attributes></Attributes>
            <Load low="1" medium="2" high="3" />
        </Separator1>
        <Separator2>
            <Path></Path>
            <Attributes></Attributes>
            <Load low="1" medium="2" high="3" />
        </Separator2>
    </Separators>
    <HeavyApplication>
        <MaxCount Count="" />
        <NameApplication1>
            <Load>1</Load>
        </NameApplication1>
        <NameApplication1>
            <Load>1</Load>
        </NameApplication1>
    </HeavyApplication>
</Config>
Было бы неплохо, если в итоге бы получался некий Hashtable и обращать к "настройкам" можно было бы так:
C#
1
settings["separators"]["separator1"]["Path"]
Может кто подскажет с реализацией?
Ответ:
Сообщение от Scrud
нужен такой файл конфигураций который можно было бы изменять руками...
XmlSerializer вам поможет.
Вопрос: Изменение файла конфигурации вручную в процессе работы программы

Подскажите, пожалуйста.
Суть задачи: приложение настраивается через файл конфигурации и должно на лету подхватывать изменения этого файла.
Я взяла FileSystemWatcher - изменения в файле он прекрасно отслеживает.
Но когда я в обработчике пытаюсь считать новую конфигурацию - ничего не выходит.

SiteConfigSection sitesSection = ConfigurationManager.GetSection("sitesSection") as SiteConfigSection;

Все равно он мне выдает старую версию, как будто она где-то закэширована.
Пробовала писать ConfigurationManager.RefreshSection - не помогает.

Как заставить приложение перечитать конфигурацию?
Ответ: Ну скажите просто, что не знаете, как сбросить закэшированные настройки конфигурации по событию ) причем тут моя методичка )
В любом случае спасибо за ответы и время!
Вопрос: Как сохранить данные, считанные из файла конфигурации, в словарь C#?

Консольное приложение. Есть файл конфигурации

XML
1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
    </startup>
  <appSettings>
    <add key="А" value="1=5; 3=14; 10=40" />
    <add key="В" value="1=1; 5=4; 8=6" />
    <add key="C" value="1=3; 2=5; 5=11" />
  </appSettings>
</configuration>
который содержит товар А, В, С. 1=5 (значит что за одну штуку стоит 5 рублей), 3=14 (3 штуки стоят 14 рублей)

Расценки:

Товар «А»:
1шт – 5р.
3шт – 14р.
10шт – 40р.

Товар «В»:
1шт – 1р.
5шт – 4р.
8шт – 6р.

Товар «С»:
1шт – 3р.
2шт – 5р.
5шт – 11р

В какую структуру данных мне лучше это все записать? Чтоб если пользователь вводил в консоль: АААСС результатом была сумма = 19, то есть высчитывалась стоимость товаров. И как сверять данные вводимые с консоли с содержимым структуры данных? Помогите пожалуйста!
Ответ: EveKS, Вот именно что вот такая система скидок заложена в конфигурационный файл(
Вопрос: Настройка с использованием файлов конфигурации

Можно ли настроить рест веб-сервис с использованием только конфигурационных файлов, без применения атрибутов к классу службы и методам, т.е. не используя типы пространства System.ServiceModel?
Ответ: dev_er, вы путаете одно с другим. Атрибуты используются для исполняющей среды, которая интерпретирует их и отображает типы CLR на типы WSDL. А файл конфигурации конфигурирует хост службы. Без атрибутов обойтись не получится, а без файла конфигурации - вполне можно, просто выполнить все вызовы в коде (так на самом деле и происходит, при запуске хоста исполняющая среда разбирает его и делает программные вызовы).
Вопрос: QSerialPort передача настроек с файла конфигурации

Добрый день. Туплю что-то я...подскажите пожалуйста... стандартные настройки QSerialPort (setOpenMode, setBaudRate, setParity и т.д.) принимают типы аргументов класса QIODevice и QSerialPort. Я считываю настройки с файла конфигурации в виде строки либо int (setOpenMode - ReadWrite, QSerialPort::Data8 - 8, и т.д.) а как эти данные с файла конфигурации грамотно передавать в функции класса QSerialPort? Ведь они требуют определенный вид параметров а не строку, число...
Например serialPortSettings->setParity(QSerialPort::NoParity). Как это преобразовать что ли..и передать в функцию.

p.s. даа...и такое бывает)))
Ответ:

Не по теме:

ну ок :-)

Вопрос: Как добавить файл конфигурации к проекту в pascalabc.net?

как добавить файл конфигурации к проекту pascalabc.net так, чтобы они при компиляции компилятор их прочел и настроил мой ехе файл
Ответ: l1703629,
Запрещено использовать нецензурные выражения в любом виде, оскорблять других участников форума, умышленно использовать выражения, противоречащие правилам русского языка, в том числе "олбанский" язык.
Вопрос: Разбор стороннего файла конфигурации

Есть App.config другого приложения :

XML
1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
    </startup>
 <appSettings>
    <add key="currentVersion" value="1.0"/>
  </appSettings>
</configuration>
из которого нужно вытащить значение `currentVersion` использую такой код :


C#
1
2
Configuration config = ConfigurationManager.OpenExeConfiguration(Path.Combine(_pathToFolder, configFileName));
var confstring = config.AppSettings.Settings["currentVersion"].Value;
Падает исключение о том что ссылка на обьект не указывает на экземпляр обьекта, хотя если просто прочитать текст файла

C#
1
string text= File.ReadAllText(Path.Combine(_pathToFolder, configFileName));
То получаю правильный XML, как указан выше. В чем тут ошибка, как исправить?
Ответ:
Сообщение от EvgenNews
мы и так указываем путь до файла конфигурации
EvgenNews, как вам правильно указали, выше сигнатура данного метода, взятая с MSDN. Там черным по белому написано, что значит параметр.
Вопрос: Cтрока подключения базы данных в файле конфигурации для Access

Подскажите как правильно указать строку подключения в файле конфигурации

Код XML
1
2
3
4
 
<connectionStrings>
    <add name="Access" connectionString="" providerName="Provider=Microsoft.Jet.OLEDB.4.0"/>
  </connectionStrings>  
Добавлено через 33 секунды
не знаю что записать в connectionString=""

Добавлено через 7 минут
что еще кроме DataBase=WordPlusDB
Вопрос: Проблема с файлом конфигурации

Решил попробовать Entity Framework, и уже в самом начале столкнулся с проблемой. При попытке создать объект класса наследника DbContext получаю такую ошибку:
An error occurred creating the configuration section handler for entityFramework: Could not load type 'Data.Entity.Internal.ConfigFile.EntityFrameworkSection' from assembly 'EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. (D:\\TFS\\Dsa\\bin\\Debug\\MxS.Dsa.vshost.exe.Config line 4)"}

Файл конфигурации выглядит вот так:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="entityFramework" type=".Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"  requirePermission="false"/>
  </configSections>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/>
    </providers>
  </entityFramework>
  <connectionStrings>
    <add name="DbConnection" connectionString="server=sql;user=DsaUser;pwd=pwd;Initial Catalog=DSA;Connection Lifetime=600;Max Pool Size=1024" providerName="System.Data.SqlClient" />
  </connectionStrings>
</configuration>


Подскажите, пожалуйста, в чём дело?
Ответ: maxapet,
Ну можно еще попробовать в веб конфиге ребайндинг версий сделать попробовать:
<dependentAssembly>
  <assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.1.4.0" />
</dependentAssembly>

Или какая у Вас там версия...
Вопрос: Чтение файла конфигурации

Здравствуйте. Хочу создать шаблончик, заготовку для будущих проектов.
В конструкторе модели класс Connect читает XML-файл конфигурации и возвращает объект типа PDO

PHP
1
2
3
4
5
6
7
8
  protected $db;
 
  public function __construct()
  {
   
    $this->db = new Connect('/config/db_conf.xml');
 
  }
Вопрос в том, можно ли положить его в глабальный массив, в сессию например, чтобы каждый раз не парсить XML? К примеру, вот так:

PHP
1
2
3
4
5
6
7
  public function __construct()
  {
      $this->db = array_key_exists('configuration', $_SESSION) ? $_SESSION['configuration'] : $_SESSION['configuration'] = new Connect('/config/db_conf.xml');
 
  }
 
И не чревато ли чем-то будет? Спасибо
Ответ: Cra3y, ну тогда полегче уже будет )))