diff --git a/common/registry/registry.go b/common/registry/registry.go index d0199dc4f..0ebc764f3 100644 --- a/common/registry/registry.go +++ b/common/registry/registry.go @@ -19,7 +19,13 @@ type implementationRegistry struct { } func (i *implementationRegistry) RegisterImplementation(name string, opt *protoext.MessageOpt, loader CustomLoader) { - interfaceType := opt.GetType()[0] + interfaceType := opt.GetType() + for _, v := range interfaceType { + i.registerSingleImplementation(v, name, opt, loader) + } +} + +func (i *implementationRegistry) registerSingleImplementation(interfaceType, name string, opt *protoext.MessageOpt, loader CustomLoader) { implSet, found := i.implSet[interfaceType] if !found { implSet = newImplementationSet()