Вот быстрый взлом для демонстрации методов, чтобы сделать то, что Вы хотите.
#include <stdio.h> /* printf */
#include <string.h> /* strcat */
#include <stdlib.h> /* strtol */
const char *byte_to_binary(int x)
{
static char b[9];
b[0] = '\0';
int z;
for (z = 128; z > 0; z >>= 1)
{
strcat(b, ((x & z) == z) ? "1" : "0");
}
return b;
}
int main(void)
{
{
/* binary string to int */
char *tmp;
char *b = "0101";
printf("%d\n", strtol(b, &tmp, 2));
}
{
/* byte to binary string */
printf("%s\n", byte_to_binary(5));
}
return 0;
}
Вы можете попробовать вызвать
ConfigurationManager.RefreshSection("appSettings")
, чтобы обновить раздел AppSettings файла с диска. Как только они будут обновлены, вы сможете прочитать новые значения.
Я только что протестировал это, и он действительно работает.
В качестве альтернативы, вы можете создать синглтон «Параметры», чтобы сохранять настройки вашего приложения и выполнять чтение / запись за вас. После загрузки изменение .config не требует перезагрузки, вы просто устанавливаете свойство в синглтоне и вызываете свой метод .Save ().
Версия «времени выполнения» ваших настроек находится в синглтоне, читать не нужно с диска.
Не используйте ConfigurationManager для чтения настроек, вместо этого используйте:
System.Configuration.ConfigurationManager.OpenExeConfiguration(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile).AppSettings.Settings["value"];