/// <summary>
        /// Initializes a new instance of the <see cref="CircularDependencyException" /> class.
        /// </summary>
        /// <param name="typePath">The type path.</param>
        /// <param name="message">The message.</param>
        /// <exception cref="ArgumentNullException">The <paramref name="typePath"/> is <c>null</c>.</exception>
        internal CircularDependencyException(ITypeRequestPath typePath, string message)
            : base(message)
        {
            Argument.IsNotNull("typePath", typePath);

            TypePath = typePath;
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="CircularDependencyException" /> class.
        /// </summary>
        /// <param name="typePath">The type path.</param>
        /// <param name="message">The message.</param>
        /// <exception cref="ArgumentNullException">The <paramref name="typePath"/> is <c>null</c>.</exception>
        internal CircularDependencyException(ITypeRequestPath typePath, string message)
            : base(message)
        {
            Argument.IsNotNull("typePath", typePath);

            TypePath = typePath;
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="CircularDependencyException" /> class.
        /// </summary>
        /// <param name="duplicateRequestInfo">Type request that occurred second time.</param>
        /// <param name="typePath">The type path.</param>
        /// <param name="message">The message.</param>
        /// <exception cref="ArgumentNullException">The <paramref name="typePath"/> is <c>null</c>.</exception>
        internal CircularDependencyException(TypeRequestInfo duplicateRequestInfo, ITypeRequestPath typePath, string message)
            : base(message)
        {
            Argument.IsNotNull("duplicateRequestInfo", duplicateRequestInfo);
            Argument.IsNotNull("typePath", typePath);

            DuplicateRequestInfo = duplicateRequestInfo;
            TypePath             = typePath;
        }