示例#1
0
        /// <summary>
        /// Gets a value indicating whether or not the container has a registration for the specified component type.
        /// </summary>
        /// <returns>
        /// <c>true</c>, if the container has a registration for the component type, <c>false</c> otherwise.</returns>
        /// <param name="name">An optional registration name.</param>
        /// <param name="serviceType">The component type for which to check.</param>
        public bool HasRegistration(Type serviceType, string name = null)
        {
            AssertNotDisposed();

            var request = new ResolutionRequest(serviceType, name);

            return(registryStack.CanFulfilRequest(request));
        }
示例#2
0
        /// <summary>
        /// Gets a registration which matches the given resolution request.
        /// </summary>
        /// <returns>The registration.</returns>
        /// <param name="request">Request.</param>
        public override IServiceRegistration GetRegistration(ResolutionRequest request)
        {
            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            if (registrationProvider.CanFulfilRequest(request))
            {
                return(registrationProvider.Get(request));
            }

            var requestWithoutName = request.GetCopyWithoutName();

            if (registrationProvider.CanFulfilRequest(requestWithoutName))
            {
                return(registrationProvider.Get(requestWithoutName));
            }

            return(null);
        }