Вы имеете в виду что-то вроде OnCreate
метода?
container.Register(
AllTypes.FromAssembly(Assembly.GetExecutingAssembly())
.BasedOn<MyMarkerInterface>()
.WithService.Base()
.OnCreate((kernel, instance) => instance.CreatedAt = DateTime.Now)
);
Синглтон - это стиль жизни по умолчанию, поэтому вам не нужно указывать это явно.
Обратите внимание, что здесь поведение немного отличается от того, как работает средство Startable.
- когда компонент запускается, он создается и запускается самим контейнером как можно скорее (когда становятся доступны все его необходимые зависимости).
- OnCreate вызывается до того, как ваш компонент возвращается из контейнера, но он не создает его предварительно. Так что если вы никогда не потяните этот компонент, его OnCreate не будет вызываться.
Кроме того, в то время как документы заявляют, что OnCreate живет в учреждении, это больше не так (да, нам нужно обновить документы). Этот метод будет работать из коробки.