Ejemplo 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);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Validate if type is not previously registered to the container.
 /// </summary>
 /// <param name="contractType">Type to register.</param>
 /// <returns>True, if type is already registered. Otherwise, false.</returns>
 private bool typeIsRegistered(Type contractType)
 {
     return(_registrations.Contains(contractType));
 }