void AddCReg(KeyAndType asType, bool preserveExistingDefaults, ICReg registration) { ICReg currentReg; if (!_registrations.TryGetValue(asType, out currentReg)) { _registrations.Add(asType, registration); return; } var multi = currentReg as ICRegMulti; if (multi != null) { multi.Add(registration, preserveExistingDefaults); return; } multi = new CRegMulti(); multi.Add(currentReg, false); multi.Add(registration, preserveExistingDefaults); _registrations[asType] = multi; }