internal void AddMultipleMapping(Type t, CKTypeKind k, CKTypeCollector collector)
 {
     Debug.Assert(!IsSpecialized, "We are on the leaf.");
     Debug.Assert(t != Type, $"Multiple mapping {ToString()} must not be mapped to itself.");
     Debug.Assert(t.IsAssignableFrom(Type), $"Multiple mapping '{t}' must be assignable from {ToString()}!");
     Debug.Assert(_multipleMappings == null || !_multipleMappings.Contains(t), $"Multiple mapping '{t}' already registered in {ToString()}.");
     Debug.Assert(_uniqueMappings == null || !_uniqueMappings.Contains(t), $"Multiple mapping '{t}' already registered in UNIQUE mappings of {ToString()}.");
     Debug.Assert((k & CKTypeKind.IsMultipleService) != 0);
     if (_multipleMappings == null)
     {
         _multipleMappings = new List <Type>();
     }
     _multipleMappings.Add(t);
     if ((k & (CKTypeKind.IsFrontService | CKTypeKind.IsMarshallable)) != (CKTypeKind.IsFrontService | CKTypeKind.IsMarshallable))
     {
         collector.RegisterMultipleInterfaces(t, k, this);
     }
 }