コード例 #1
0
ファイル: VisitorManager.cs プロジェクト: QuickOrBeDead/abioc
        /// <summary>
        /// Gets the visitor for the <paramref name="registration"/> and processes it.
        /// </summary>
        /// <param name="registration">The <see cref="IRegistration"/> to visit.</param>
        public void Visit(IRegistration registration)
        {
            if (registration == null)
            {
                throw new ArgumentNullException(nameof(registration));
            }

            VisitRegistrationDelegate visitorDelegate = GetVisitorDelegate(registration.GetType());

            visitorDelegate(this, registration);
        }
コード例 #2
0
ファイル: VisitorManager.cs プロジェクト: QuickOrBeDead/abioc
        private static VisitRegistrationDelegate GetVisitorDelegate(Type registrationType)
        {
            if (registrationType == null)
            {
                throw new ArgumentNullException(nameof(registrationType));
            }

            VisitRegistrationDelegate handler =
                VisitRegistrationDelegates.GetOrAdd(registrationType, CreateVisitorDelegate);

            return(handler);
        }