/// <summary>
        /// Registers the conventions.
        /// </summary>
        /// <param name="name">The name.</param>
        /// <param name="conventions">The conventions.</param>
        /// <param name="filter">The filter.</param>
        public static void Register(string name, IConventionPack conventions, Func <Type, bool> filter)
        {
            if (name == null)
            {
                throw new ArgumentNullException("name");
            }
            if (conventions == null)
            {
                throw new ArgumentNullException("conventions");
            }
            if (filter == null)
            {
                throw new ArgumentNullException("filter");
            }

            lock (__lock)
            {
                var container = new ConventionPackContainer
                {
                    Filter = filter,
                    Name   = name,
                    Pack   = conventions
                };

                __conventionPacks.Add(container);
            }
        }
        /// <summary>
        /// Registers the conventions.
        /// </summary>
        /// <param name="name">The name.</param>
        /// <param name="conventions">The conventions.</param>
        /// <param name="filter">The filter.</param>
        public static void Register(string name, IConventionPack conventions, Func<Type, bool> filter)
        {
            if (name == null)
            {
                throw new ArgumentNullException("name");
            }
            if (conventions == null)
            {
                throw new ArgumentNullException("conventions");
            }
            if (filter == null)
            {
                throw new ArgumentNullException("filter");
            }

            lock (__lock)
            {
                var container = new ConventionPackContainer
                {
                    Filter = filter,
                    Name = name,
                    Pack = conventions
                };

                __conventionPacks.Add(container);
            }
        }