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