public void Register(ICommandBuilder command, IExtension extension) { Assert.IsNotNull(command); Assert.IsNotNull(extension); Command builded = command.Build(); Assert.IsNotNull(builded); Builders.Add(command, builded); RBuilders.Add(builded, command); Commands.Add(builded, extension); }
public void Unregister(params Command[] commands) { Assert.IsNotNull(commands); foreach (Command cmd in commands) { Assert.IsNotNull(cmd); _ = Commands.Remove(cmd); if (RBuilders.TryGetValue(cmd, out ICommandBuilder? value)) { _ = RBuilders.Remove(cmd); _ = Builders.Remove(value); } } }