我正在使用Unity进行依赖项注入。 Unity将解析的许多对象都具有IMyChildService
依赖性。
在我的MainController
中,我定期调用一个方法,该方法可解析某些对象并将它们传递到新产生的工作线程中。完成这些解析后,我希望Unity使用IMyChildService
对象的相同实例。然后,当MainController
再次调用该方法并再次解析时,我希望使用IMyChildService
的新单个实例。在为每个新线程解析依赖项时,我有几个Resolve
语句。因此,根据我的理解,每个解决方案的生命周期管理器将无法工作,因为我将获得多个实例(我可能错了)。
此外,MainController
有一些方法,我希望对IMyChildService
的每个解析都产生一个全新的实例。
从本质上讲,我想每次调用RegisterInstance
中的方法时都会调用MainController
,该方法会产生一个新线程,但是在MainController
的某些方法中还具有短暂的生存期(也,我想确保在产生每个线程之后停止使用我注册的IMyChildService
实例,以免意外在该线程之外使用该线程的IMyChildService
实例。)
我还没有找到一种方法来撤消RegisterInstance
以恢复使用瞬态寿命。我所看到的是,每个新的RegisterInstance
都将覆盖先前的RegisterInstance
。这就解决了我为每个线程使用一个唯一的IMyChildService
的问题,但是并不能解决我的问题的瞬时生存期部分。
我想到的最接近的事情是在生成新线程之后立即注册IMyChildService
的新实例。这是部分解决方案,因为它可以防止我意外地在线程外重用线程的IMyChildService
,但是并不能完全满足我的需求。有办法解决吗?