在使用Windows Service VS2013 项目模板创建项目时,我注意到从工具框中添加EventLog组件后,名为“组件设计器生成的代码”的#region填充有以下代码:
private void InitializeComponent()
{
this.eventLog1 = new System.Diagnostics.EventLog();
((System.ComponentModel.ISupportInitialize)(this.eventLog1)).BeginInit();
//
// Service1
//
this.ServiceName = "Service1";
((System.ComponentModel.ISupportInitialize)(this.eventLog1)).EndInit();
}
我的问题是:应该添加设计器生成如下行:
components.Add(this.eventLog1);
行后
this.eventLog1 = new System.Diagnostics.EventLog();
? 存在如下方法的事实:
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
并且System.Diagnostics.EventLog实现了IDisposable接口让我认为这样的行应该包含在Designer生成的代码中。我知道这没什么大不了的,而且仅在极少数情况下(例如,您在Main方法中使用ServicesBase派生实例玩弄脏了),缺少该行可能会影响应用程序的性能,但对我来说仍然没有意义像这样的Disposal方法实现,而不是像这样添加一行:components.Add(this.eventLog1); . 有什么想法吗?