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