Open
Description
Is it possible to override a value that is already defined in a parent container?
For example, let's say I want to override the Logger for a specific DI container like this
type Logger interface {
}
type Logger1 struct{}
type Logger2 struct{}
func main() {
root, err := di.New(
di.ProvideValue(Logger1{}, di.As(new(Logger))),
)
if err != nil {
panic(err)
}
child, err := di.New(
di.ProvideValue(Logger2{}, di.As(new(Logger))),
)
if err != nil {
panic(err)
}
err = child.AddParent(root)
if err != nil {
panic(err)
}
var lg Logger
err = child.Resolve(&lg)
if err != nil {
panic(err)
}
}
I get
multiple definitions of main.Logger, maybe you need to use group type: []main.Logger
Metadata
Metadata
Assignees
Labels
No labels