从ServiceBase
派生时,我是否也应该调用基类的方法?
protected override void OnStart(string[] args)
{
//
// The stuff I do when the service starts.
//
base.OnStart(args); // Do I need to call this?
}
答案 0 :(得分:17)
简短的回答是肯定的,你应该。
在这种特定情况下,OnStart方法的基本实现没有做任何重要的事情,但这是一个可能随时改变的实现细节。作为一般惯例,除非你有充分的理由不这样做,否则你应该总是调用基本方法。
答案 1 :(得分:5)
如果您使用ILSpy或类似程序对服务基础进行反编译,您会看到,OnStart,OnStop等不执行任何操作(至少在.NET 4.0 / 4.5中)。
但是这种行为可能会改变一段时间,因此如果你不调用它,那么在将来的.NET版本中可能会出现不必要或不可预测的行为。
我认为调用那些base.OnEvent() - 方法。
答案 2 :(得分:-1)
当我写服务时,我认为我从未打过base.OnStart。
但是,如果你 ,总是让基类调用你方法的第一行行,不是最后一行!