我有一个用户控件,它的属性是引用类型。Windows窗体设计器不断生成将属性的初始值赋值为null的代码。我如何防止这种情况发生?
我尝试添加Reset和ShouldSerialize方法-- Reset有一个空的主体,而ShouldSerialize总是返回false --但是不起作用。我还应用了BrowsableAttribute并将其设置为false。
编辑:
属性的类型是同一项目中的类。它不是组件或控件,只是继承自Object的普通类。此外,属性的setter调用一个使用属性值作为其参数的方法,并且该方法不接受null作为有效参数。
示例:
public MyClass Property1
{
get { return _property1; }
set
{
_property1 = value;
SomeMethod(value); // This method throws ArgumentNullException;
}
}
注意:我确实意识到get和set方法在这里可能更合适。
发布于 2010-06-03 05:36:08
黑,我可以用一小段。告诉设计器永远不应该序列化属性的值:
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public Image Aardvark { get; set; }
https://stackoverflow.com/questions/2961534
复制相似问题