private void Register(IMounter <TTarget, TProperty> item) { Type targetType = item.ParentType; if (_resultRegistrations.ContainsKey(targetType)) { throw new InvalidOperationException(DiagnosticMessages.MounterManager_RegisterAfterUse(targetType.FullName)); } RegistrationCollection registrations = _registrations.GetOrAdd(targetType, x => new RegistrationCollection()); if (registrations.Contains(new Key(item))) { throw new InvalidOperationException(DiagnosticMessages.MounterManager_RegisterDuplicate(item.DeclaringType.FullName, item.Name)); } registrations.Add(item); }