代码之家  ›  专栏  ›  技术社区  ›  YWE

如何防止Windows窗体设计器生成属性的默认值分配?

  •  8
  • YWE  · 技术社区  · 14 年前

    我有一个具有引用类型属性的用户控件。Windows窗体设计器不断生成代码,将属性的初始值指定为空。我该如何预防?

    我尝试添加reset和shouldserialize方法——reset的主体为空,shouldserialize总是返回false——但这不起作用。我还应用了browsableAttribute并将其设置为false。

    编辑:

    属性的类型是同一项目中的类。它不是组件或控件,只是从对象继承的普通类。此外,属性的setter使用属性的值作为参数调用方法,并且该方法不接受空值作为有效参数。

    例子:

    public MyClass Property1 
    {
       get { return _property1; }
       set
       {
            _property1 = value;
            SomeMethod(value); // This method throws ArgumentNullException;
       }
    }
    

    注意:我知道get和set方法在这里可能更合适。

    1 回复  |  直到 14 年前
        1
  •  21
  •   Hans Passant    14 年前

    莫基,我可以用一个片段。告诉设计器它不应该序列化属性的值:

        [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public Image Aardvark { get; set; }