Я новичок в Ninject (и DI в целом).
Я понимаю, как ядро загружает модули, и код, который я написал до сих пор, имеет одну строку:
myKernel.Get<MyApp>()
, которая создает все, что мне нужно, из привязок в моем модуле.,Если есть необходимость в новых экземплярах после инициализации, об этом заботятся фабрики, которые я связываю для инициализации.До сих пор фабрики были свободны от любых незначительных зависимостей, просто обновляя объекты по требованию.
Теперь я достиг точки, когда мне нужно подумать о создании объектов после инициализации, а мой собственный шаблон фабрики нерезать это больше.Это будет поддерживать интерфейс pub / sub для (удаленных) клиентов.При каждом новом подключении к моему серверу я хотел бы создавать новые IClient
экземпляры в соответствии с набором привязок, определенных в модуле ninject.Означает ли это, что фабрика, которую я передаю при инициализации, должна иметь собственное ядро (или ссылку на основное ядро)?Где в этом будет функция CommonServiceLocator.Нужна ли CSL?
Прежде чем я зашел слишком далеко в тупики, я подумал, что лучше спросить здесь о том, как другие могут подойти к этой проблеме.