/// <summary>
 /// Adds the assembly that contains the type specified by <typeparamref name="T"/>for reference only
 /// (its types won't appear in the result, but they may appear as base classes or interfaces).
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="builder">The builder.</param>
 /// <exception cref="ArgumentNullException"></exception>
 public static void AddReferenceOnlyAssemblyByType <T>(this IReflectionMetadataBuilder builder)
 {
     if (builder == null)
     {
         throw new ArgumentNullException(nameof(builder));
     }
     builder.AddReferenceOnlyAssembly(GetLocation <T>());
 }
        /// <summary>
        /// Adds the assembly that contains the type specified by <typeparamref name="T"/>for reference only
        /// (its types won't appear in the result, but they may appear as base classes or interfaces).
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="builder">The builder.</param>
        /// <exception cref="ArgumentNullException"></exception>
        public static void AddReferenceOnlyAssemblyByType <T>(this IReflectionMetadataBuilder builder)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }
            var location = GetLocation <T>();

            builder.AddReferenceOnlyAssembly(location);
            foreach (var additionalPath in GetAdditionalPaths <T>(location))
            {
                builder.AddReferenceOnlyAssembly(additionalPath);
            }
        }