Что означает это сообщение об исключении? - PullRequest
0 голосов
/ 13 июля 2011

Я пишу приложение (что-то вроде блокнота) на C #. Я использую Properties.Settings класс для сохранения пользовательских настроек. Он работал нормально, пока внезапно не начал показывать это сообщение об исключении в любое время, когда я пытаюсь запустить его.

Configuration system failed to initialize

Я заметил, что ошибка произошла из этой части кода:

    private void TextPad_Load(object sender, EventArgs e)
    {
        rtbText.WordWrap = Properties.Settings.Default.WordWrap;
        rtbText.Font = Properties.Settings.Default.DefFont;
        rtbText.ForeColor = Properties.Settings.Default.ForeColor;
        rtbText.BackColor = Properties.Settings.Default.BackColor;
        if (Properties.Settings.Default.ShowLast)
        {
            OpenLocalFile(Properties.Settings.Default.LastFile);
        }

        // There are other lines which are not relevant to this question
    }

Я переместил предположительно строки в конструктор формы сразу после InitializeComponent();, но все еще получаю ту же ошибку.

На самом деле компилятор сообщает, что ошибка происходит из-за этого в Settings.Designer.cs:

    [global::System.Configuration.UserScopedSettingAttribute()]
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
    [global::System.Configuration.DefaultSettingValueAttribute("False")]
    public bool WordWrap {
        get {
            return ((bool)(this["WordWrap"]));
        }
        set {
            this["WordWrap"] = value;
        }

Если я удаляю rtbText.WordWrap = Properties.Settings.Default.WordWrap; из TextPad_Load, он показывает

    [global::System.Configuration.UserScopedSettingAttribute()]
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
    [global::System.Configuration.DefaultSettingValueAttribute("Consolas, 9.75pt")]
    public global::System.Drawing.Font DefFont {
        get {
            return ((global::System.Drawing.Font)(this["DefFont"]));
        }
        set {
            this["DefFont"] = value;
        }

Единственное решение сейчас - либо удалить эти строки из TextPad_Load (что делает идею загрузки пользовательских настроек бесполезным), либо начать новый проект (что я и сделал, во всяком случае). Может кто-нибудь объяснить, что означает сообщение об исключении, и, возможно, я смогу найти решение (в случае, если я столкнусь с ним снова)? Microsoft VS Help не дает мне ничего осязаемого.

Спасибо

1 Ответ

0 голосов
/ 13 июля 2011

Это может помочь выбросить ваши существующие файлы .config.

После изменений в Properties.Settings старый файл больше не может быть действительным (измененные имена или удаленные элементы больше не распознаются).

Обратите внимание, что пользовательские настройки хранятся в (диск): \ Users (usr) \ AppData \ Local \ Microsoft ... что-то

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...