public MainWindowSettings(IObjectData data) : base(data) { // prepare settings double[] logListViewColumnWidths = null; NativeMethods.WINDOWPLACEMENT?placement = null; if (data != null) { // get settings from data logListViewColumnWidths = data.GetDoubleArrayValue(SettingNames.LogListViewColumnWidths, null); placement = data.GetNullableValue(SettingNames.Placement, CreateWINDOWPLACEMENT); } // set settings try { // may throw ArgumentException for an invalid value this.LogListViewColumnWidths = logListViewColumnWidths; this.Placement = placement; } catch (Exception exception) { throw new FormatException(exception.Message); } return; }