То, как сделать разработчика, генерировало портативные параметры настройки приложения .NET

Для <element>_tag Вы определяете HTML-атрибуты непосредственно, следующим образом:

<% form_tag session_path, :id => 'elm_id', :class => 'elm_class',
                          :style => 'elm_style' do -%>
   ...
<% end -%>

Это для <element>_ remote _tag конструкции, что необходимо переместить HTML-атрибуты в :html карта:

<% form_tag form_remote_tag :url => session_path, :html => {
                            :id => 'elm_id', :class => 'elm_class',
                            :style => 'elm_style' } do -%>
   ...
<% end -%>
5
задан Ville Koskinen 7 September 2009 в 18:50
поделиться

2 ответа

Почему бы не использовать решение CodeProject PortableSettingsProvider как есть (с небольшими изменениями)? { {1}} Я успешно сделал это в своем проекте ( StreamRecorder.NET ).

Были полезны некоторые комментарии на странице проекта:

И код, который у меня получился:

    static void Main(string[] args)
    {
        if (args.Contains("-p") || args.Contains("--portable"))
        {
            MakePortable(Properties.Settings.Default);
            MakePortable(Properties.LastUsedSettings.Default);
            MakePortable(Properties.DefaultSettings.Default);
        }
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new MainForm(args));
    }

    private static void MakePortable(ApplicationSettingsBase settings)
    {
        var portableSettingsProvider = 
            new PortableSettingsProvider(settings.GetType().Name + ".settings");
        settings.Providers.Add(portableSettingsProvider);
        foreach (System.Configuration.SettingsProperty prop in settings.Properties)
            prop.Provider = portableSettingsProvider;
        settings.Reload();
    }

Наконец, я внес эти изменения в проект CP:

string _fileName;
public PortableSettingsProvider(string fileName)
{
    _fileName = fileName;
}

public virtual string GetAppSettingsFilename()
{
    //Used to determine the filename to store the settings
    //return ApplicationName + ".settings";
    return _fileName;
}
15
ответ дан 18 December 2019 в 09:51
поделиться

Просто чтобы «закрыть» вопрос: в итоге я получил несколько неудовлетворительное решение

  1. Создать поставщика настраиваемых параметров, который наследуется от SettingsProvider и сохраняет параметры в файле XML
  2. Установите для свойства Provider каждого параметра (путем выбора всей сетки в конструкторе) поставщик настраиваемых параметров с помощью конструктора.

Недостатки: Конструктор форм прерывается и выдает исключение, которое в основном говорит о том, что настраиваемый класс провайдера не найден. Однако встроенный exe работает нормально. Установка поставщика в коде, как описано в вопросе, заставляет конструктора работать, но затем по какой-то причине, на которую я не смотрел внимательно, настройки не будут сериализованы.

Похоже, что сделать настройки переносными - это все, что нужно было сделать Doppler переносимым.

0
ответ дан 18 December 2019 в 09:51
поделиться
Другие вопросы по тегам:

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