Тип не помечен как сериализуемый

172
21 марта 2019, 11:00

Нужно создать компонент для нужд проекта. Вот максимально упрощённый код:

[Serializable()]
public partial class TabControl2 : TabControl
{
    private List<TabPage> userPages;
    public Dictionary<int, DrawItemEventArgs> AllItemsDraw { get; set; } = new Dictionary<int, DrawItemEventArgs>();
    public TabControl2():base()
    {
        InitializeComponent();
    }
    public TabControl2(IContainer container)
    {
        container.Add(this);
        InitializeComponent();
    }
    public void InitializeComponent()
    {
        DrawMode = TabDrawMode.OwnerDrawFixed;
        userPages = new List<TabPage>();
        userPages.Add(new TabPage() { Text = "test1", BorderStyle = BorderStyle.None, BackColor = SystemColors.ControlDarkDark });
        Controls.Add(userPages.ElementAt(0));
        userPages.Add(new TabPage() { Text = "test2", BorderStyle = BorderStyle.None, BackColor = SystemColors.ControlDarkDark });
        Controls.Add(userPages.ElementAt(1));
        userPages.Add(new TabPage() { Text = "test_full_please", BorderStyle = BorderStyle.None, BackColor = SystemColors.ControlDarkDark });
        Controls.Add(userPages.ElementAt(2));
    }
// etc...
}

При взаимодействии с новым компонентом в конструкторе форм появляется следующая ошибка:

В чем ошибаюсь? Благодарю.

Answer 1

Решение: При создании пользовательского контрола студия пытается создать объекты всех свойств контрола, для отображения их в дизайнере. Это и блокирует форму и вызывает вышеописанную ошибку. Решение:

[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]

Пометить атрибутом нужные свойства.

READ ALSO
Не получается записать текст в файл

Не получается записать текст в файл

Не получается записать в файл строку, не пойму в чем делоStackTrace:

190
Задаю переменной значение 2 а компилятор выдает 49 C# в чем ошибка?

Задаю переменной значение 2 а компилятор выдает 49 C# в чем ошибка?

Всем добрый день, Учу C# и пытаюсь понять в чем ошибка

144
Сортировка в List&lt;&gt;

Сортировка в List<>

Как отсортировать элементы списка по возрастанию цены? Были попытки сделать это через оператор orderby, но в таком случае просто сортирует одни...

181