WPF Properties.Settings выдает исключение при запуске и закрытии - PullRequest
0 голосов
/ 14 августа 2010

Когда мое приложение Wpf запускается, я получаю BindingFailureException в Settings.Designer.cs

[global::System.Configuration.UserScopedSettingAttribute()]
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
    public global::System.Collections.Specialized.StringCollection Projects {
        get {
            return ((global::System.Collections.Specialized.StringCollection)(this["Projects"]));
        }
        set {
            this["Projects"] = value;
        }
    }

со следующим сообщением:

The assembly with display name 'System.XmlSerializers' failed to load in the 'LoadFrom' binding context of the AppDomain with ID 1. The cause of the failure was: System.IO.FileNotFoundException: Could not load file or assembly 'System.XmlSerializers, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The system cannot find the file specified.

В моем коде MainWindow я делаюследующее в window_loaded:

try
        {
          if (Properties.Settings.Default.Projects==null)
            Properties.Settings.Default.Projects=new StringCollection( );
        var removalList = new List<string>( );
        foreach (string project in Properties.Settings.Default.Projects)
        {
            if (System.IO.File.Exists(project))
                OpenProject(project);
            else
            {
                removalList.Add(project);
            }

        }
        foreach (string missingProject in removalList) //so that we are not removing an item while iterating
        {
            Properties.Settings.Default.Projects.Remove(missingProject);
        }
            }
        catch (Exception ex)
        {
            Debug.WriteLine(ex.ToString( ));
        }

Также в window_closing

try
            {
                //TODO: save prompt
                Properties.Settings.Default.Save( );
            }
            catch (Exception ex)
            {

                Debug.WriteLine(ex.ToString( ));
            }

, что также вызывает то же исключение.Почему я получаю исключение при доступе к Properties.Settings?

1 Ответ

2 голосов
/ 14 августа 2010

Это исключение не так уж необычно в моем опыте.То, что является необычным, заключается в том, что исключение (очевидно) не обрабатывается в вашей ситуации.Обычно (опять же по моему опыту) это исключение молча перехватывается и обрабатывается каким-то другим механизмом.

Вы, случайно, не запускаете это в отладчике VS с "break, когда генерируется исключение"ты?Между прочим, этот параметр находится в разделе «Отладка -> Исключения ...».

...