我想问一下ConstructUsing应该采取哪些操作以及WhenStarted中的操作。实际上通常放在构造中的配置读取,在服务的情况下初始化的东西应该放在WhenStarted IMO中以便在服务重启期间刷新所有东西,那么ConstructUsing还剩下什么呢?刚刚上课,那就是全部?但在那种情况下,为什么不在WhenStarted中进行新的创作呢?
提前致谢
答案 0 :(得分:4)
ConstructUsing
定义了如何创建服务,它实际上可能只是一个新的(),或另一种获取服务的方式:
例如,使用IoC:
// Release in WhenStopped()
sc.ConstructUsing(() => container.Resolve<IMyService>());
另一个选择是使用服务的现有实例:
sc.ConstructUsing(() => serviceInstance);
另一方面, WhenStarted
定义了服务实例启动时要采取的操作,因此需要配置实例:您将无法在此处创建服务:
sc.WhenStarted(service => service.Start());