我有一个简单的图表编辑器,在阅读有关IoC和DI的书籍之后,我决定尝试使用他们提供的帮助来解耦我的代码。看起来当用户将图表项添加到图表时,项目由抽象工厂创建并添加到内部图表项目列表中。但是,如果用户想要从diargam中删除项目,该怎么办?首先我应该从内部列表中删除项目。然后我对IoC.Release(Item)或者没有产生一些误解?如果我不调用IoC.Release(Item)(避免在我的对象内部了解IoC),IoC中的Item会发生什么。
PS:我正在尝试使用Castle Windsor
答案 0 :(得分:2)
使用抽象工具创建组件时(我假设使用Windsor TypeFactory实现),如果不释放组件,则不会对组件进行垃圾回收。组件可以通过以下任一方式释放:
通常,直接调用容器是个坏主意。只能直接调用容器:
我希望这会有所帮助。
亲切的问候, Marwijn。