gpt4 book ai didi

c# - 使 Visual Studio 设计器忽略公共(public)属性

转载 作者:可可西里 更新时间:2023-11-01 08:38:53 25 4
gpt4 key购买 nike

我有一个 UserControl,它具有使用以下属性的公共(public)属性:

[Browsable(false)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]

我已尝试删除所有者窗体,在 Visual Studio 2010 中重新创建一个新窗体,并将此 UserControl 添加到窗体中。它不断在 Designer 文件中添加如下一行:

this.vMyUserControl.MyProperty = ((MyNamespace.MyClass)(resources.GetObject("vMyUserControl.MyProperty")));

这会使我的应用程序崩溃,因为此属性并非设计为通过序列化创建。

最佳答案

在设计时将属性设置为只读将防止它被序列化到 resx 文件中。奇怪的是,如果 MyType 碰巧是一个集合,设计者将忽略只读,并且您仍然可以在设计时设置该属性,即使该属性未写出到 resx 中,因此最好也使该属性不可浏览。

[ReadOnly(true)]
[Browsable(false)]
public MyType MyProperty
{
get { return _MyProperty; }
set { _MyProperty = value; }
}

关于c# - 使 Visual Studio 设计器忽略公共(public)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7782761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com