我有一个类 Foo,它用于配置容器并充当另一个类 Bar 的工厂,该类用作 Windows 服务的入口点。
Bar 类被注入了一个 Baz 实例,该实例打开了一个套接字连接。
在 Foo 中,IBaz 配置了一个 OnActivated() 来打开连接和一个 OnRelease() 来关闭连接。
验收测试使用 Foo 创建 Bar 并验证一些预期结果。问题是测试永远不会完成,因为 Baz 连接永远不会关闭。这是由于 OnRelease() 从未被调用。
我的理解是,一旦 Foo 超出范围并被垃圾收集,容器应该调用 OnRelease() 委托。
为什么这不会发生?