Может ли StructureMap воссоздать зависимости после их передачи? - PullRequest
1 голос
/ 21 ноября 2011

У меня есть структура StructureMap для передачи зависимостей в качестве интерфейсов для обработки различных протоколов электронной почты. Реализации однако наследуются от 'TcpClient'. Если есть ошибка или разъединение, повторное соединение не может произойти, пока не будет создан новый TcpClient, поэтому переданная зависимость должна быть обновлена ​​новым объектом.

Как мне получить StructureMap для воссоздания уже переданных зависимостей? В конструкторе службы 2 из этих протокольных интерфейсов должны быть обновлены новыми объектами. Было бы неплохо, если бы StructureMap мог выполнить это без каких-либо вызовов ObjectFactory, поскольку зависимости уже были подключены в классе ServiceRegistry.

Ответы [ 2 ]

2 голосов
/ 21 ноября 2011

Звучит так, будто индивидуальный образ жизни может помочь.Это делается путем реализации интерфейса ILifecycle.

1 голос
/ 22 ноября 2011

Вы можете сделать класс потребления зависимым от Func<TcpClient> вместо TcpClient.Сохраните func в переменной экземпляра, а затем вызывайте func всякий раз, когда вы хотите новый экземпляр.

...