0

我有一个用户控件。

public partial class UserControl1 : UserControl
{
    public UserControl1()
    {
        InitializeComponent();
    }

    public List<Person> People
    {
        get
        {
            return new List<Person>();
        }
        set
        {
            throw new NotImplementedException();
        }
    }
}

如果我将此控件拖到窗体上,则会出现序列化错误。错误会根据我是第一次拖动控件、删除控件还是其他方式而变化。不变的是,如果我让 Person 可序列化,那么错误就会消失。为什么将元素拖放到表单上时会出现错误?什么是典型的修复?

4

1 回答 1

3

Visual Studio 实际上会进行一些设计器序列化以显示 UserControl。由于 Person 对象不可序列化,因此您会收到错误消息。您可以使其可序列化或标记属性,以便设计时序列化将忽略它(见下文)。

您可以将属性标记为[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]在尝试在设计器中设置控件时不会调用该属性。

Hidden 指定序列化程序不应序列化属性的值。此静态字段是只读的。

于 2012-05-03T18:04:37.537 回答