Как использовать IronPython с App.Config?

Хорошо, я понял, как это сделать с небольшим количеством unsafe ness и std::mem.

Я заменяю self неинициализированным временным значением. Поскольку я теперь «владею» тем, что раньше было self, я могу смело вывести его из него и заменить его:

use std::mem;

enum Foo<T> {
    Bar(T),
    Baz(T),
}

impl<T> Foo<T> {
    fn switch(&mut self) {
        // This is safe since we will overwrite it without ever reading it.
        let tmp = mem::replace(self, unsafe { mem::uninitialized() });
        // We absolutely must **never** panic while the uninitialized value is around!

        let new = match tmp {
            Foo::Bar(val) => Foo::Baz(val),
            Foo::Baz(val) => Foo::Bar(val),
        };

        let uninitialized = mem::replace(self, new);
        mem::forget(uninitialized);
    }
}

fn main() {}
21
задан Andrew Rimmer 15 February 2009 в 11:15
поделиться

4 ответа

Можно посмотреть System.Configuration.ConfigurationManager класс. Строго говоря, OpenMappedExeConfiguration метод позволит Вам загружать любой .config файл по Вашему выбору. Это даст Вам Configuration объект, который представляет стандартный AppSettins, ConnectionStrings, свойства SectionGroups и Sections.

Этот подход требует, чтобы Вы передали название файла конфигурации к Вашему сценарию как параметр командной строки или имели логику кода для выбора .config файла во времени выполнения.

я не знаю Python, таким образом, я воздержался бы от попыток отправить пример кода.:-)

2
ответ дан Franci Penov 15 February 2009 в 11:15
поделиться

Можно всегда включать дополнительные разделы в рамках файлов конфигурации. В Вашем ipy.exe.config файле можно добавить включение для импорта внешних настроек конфигурации; скажите myApp.config.

В пакете/командном файле можно всегда копировать по определенному набору .config в myApp.config и поэтому выполнение с различными файлами конфигурации по требованию.

Посмотрели на этот блог о том, как достигнуть этого; http://weblogs.asp.net/pwilson/archive/2003/04/09/5261.aspx

0
ответ дан Liam Westley 15 February 2009 в 11:15
поделиться

Переводя это сообщение в блоге в Python, это должно работать:

import clr
import System.AppDomain
System.AppDomain.CurrentDomain.SetData(“APP_CONFIG_FILE”, r”c:\your\app.config”)
0
ответ дан oefe 15 February 2009 в 11:15
поделиться
[

] Для обходного пути я заполнил коллекцию AppSettings для статического класса ConfigurationManager "вручную", поэтому я создал PY скрипт и запустил "импорт" его на IronPython, после чего настройки будут доступны для библиотеки классов. Однако, я не смог найти значения для коллекции ConnectionStrings :([

] [

]мой скрипт выглядит так[

] [
import clr
clr.AddReferenceToFileAndPath(r'c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.configuration.dll')
from System.Configuration import *
ConfigurationManager.AppSettings["settingA"] = "setting A value here"
ConfigurationManager.AppSettings["settingB"] = "setting B value here"
] [

]Было бы неплохо знать способ "загрузки" пользовательского .config-файла в класс ConfigurationManager.[

].
0
ответ дан 29 November 2019 в 22:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: