Exemplo n.º 1
0
        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);
        }