我目前正在制作自定义控件,当 VS 写入 Designer.cs 文件时,某些属性会生成这些奇怪的空白注释。示例:
//
// myControl
//
this.myControl.Name = "myControl";
this.myControl.Property = 30;
this.myControl.OtherProperty = 20;
//
//
//
this.myControl.Options1.Name = null;
this.myControl.Options1.Option = "example";
//
//
//
this.myControl.Options2.Name = null;
this.myControl.Options2.SomeProperty = 50;
this.myControl.Options2.SomeEvent += new System.EventHandler(this.myControl_Options2_SomeEvent);
this.myControl.OtherProperty = 10;
有人知道是什么导致这些空白评论吗?我不希望有任何评论,但如果我至少可以显示名称“myControl.Options1”,那是可以接受的。
这是我的类的粗略结构(虽然非常简单):
[ToolboxItem(false)]
public class Options : IComponent
// I implement IComponent so this class appears in the Properties window nicely. Not sure why exactly it works though.
{
#region Implement IComponent
public ISite Site { get; set; }
public void Dispose()
{
// Nothing needs to be disposed
Disposed?.Invoke(this, EventArgs.Empty);
}
public event EventHandler Disposed;
#endregion
}
public partial class MyControl : UserControl
{
#region Options
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public Options Options1 { get; private set; }
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public Options Options2 { get; private set; }
public MyControl
{
Options1 = new Options();
Options2 = new Options();
}
#endregion
}
任何想法都会很有帮助!我在网上其他任何地方都找不到这个问题。我的假设是我滥用了 IComponent 接口(interface),但我不确定如何修复它。
最佳答案
这些注释是自动生成的,对输出二进制文件没有影响。当你编译时,它们都会被删除,所以你不必担心膨胀或类似的事情。为了可维护性,其他开发人员应该被引导到设计者,而不是输出的代码。如果有人对设计器进行了更改,他们的编辑将不会被保留。
我建议完全忽略设计师实际发出的内容。它并不是真的要编辑 - 不过,对于查看设计师实际创建的源文件很有用。
关于c# - 如何修改C# Designer.cs文件中的注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45038271/