Я создаю приложение, которое использует шаблон Abstract Factory, чтобы позволить во время выполнения определять, какой подкласс моего IHardwareDevice создать, основываясь на том, как он отвечает на запрос идентификации.Я мог бы создать Hardware1 или Hardware2.
Проблема возникает в том, что я хочу использовать шаблон State в этих объектах IHardwareDevice и хочу, чтобы State был создан контейнером IoC.Есть ли хороший способ сделать это без непосредственного вызова контейнера IoC для разрешения объектов State, с помощью которых выполняется гидратация IHardwareDevice?
Или я думаю об этом неправильно?Поскольку моя фабрика в значительной степени является точкой входа в эту библиотеку, можно ли с этой ручкой фабрики создавать экземпляр контейнера для использования в библиотеке?Я планировал, чтобы клиентское приложение создавало экземпляр контейнера, а затем использовал его для получения доступа к тем частям библиотеки, которые ему необходимы, например, к Factory.
Я планирую использовать Windsor в качестве контейнера IoC,но я нахожусь на достаточно ранней стадии проекта, чтобы переключиться при необходимости.