StructureMap传入之后可以重新创建依赖关系吗?

时间:2011-11-21 16:29:19

标签: dependency-injection structuremap

我有StructureMap设置来传递依赖关系作为处理不同电子邮件协议的接口。然而,实现继承自'TcpClient'。如果出现错误或断开连接,除非创建了新的TcpClient,否则无法重新连接,因此需要使用新对象刷新传入的依赖项。

如何让StructureMap重新创建已经传入的依赖项? 在服务构造函数中,需要使用新对象刷新其中2个协议接口。 如果StructureMap能够在不对ObjectFactory进行任何调用的情况下实现这一点,那将是很好的,因为依赖关系已经在ServiceRegistry类中连接起来了。

2 个答案:

答案 0 :(得分:2)

听起来像一个习惯的生活方式可能会成功。这是通过实现ILifecycle接口完成的。

答案 1 :(得分:1)

您可以使消费类依赖于Func<TcpClient>而不是TcpClient。将func存储在实例变量中,然后在需要新实例时调用func。