/// <summary>
 /// Add types of the assembly of a given type to a given ITypesProvider
 /// <seealso cref="ITypesProvider"/>
 /// </summary>
 /// <param name="typeProvider"></param>
 /// <param name="type"></param>
 /// <returns>
 /// a new ITypesProvider with original types and types of the assembly of the given type
 /// </returns>
 public static ITypesProvider AddTypesOfSameAssembly(this ITypesProvider typeProvider, Type type)
 {
     return(typeProvider.Add(type.GetTypesFromSameAssembly()));
 }
 /// <summary>
 /// Add types of the assembly of a given object to a given ITypesProvider
 /// <seealso cref="ITypesProvider"/>
 /// </summary>
 /// <param name="typeProvider"></param>
 /// <param name="object"></param>
 /// <returns>
 /// a new ITypesProvider with original types and types of the assembly of the given object
 /// </returns>
 public static ITypesProvider AddTypesOfSameAssembly(this ITypesProvider typeProvider, object @object)
 {
     return(typeProvider.Add(@object.GetTypesFromSameAssembly()));
 }
 /// <summary>
 /// Add assembly types to a given ITypesProvider
 /// <seealso cref="ITypesProvider"/>
 /// </summary>
 /// <param name="typeProvider"></param>
 /// <param name="assembly"></param>
 /// <returns>
 /// a new ITypesProvider with original types and types from the given assembly
 /// </returns>
 public static ITypesProvider AddTypesFrom(this ITypesProvider typeProvider, Assembly assembly)
 {
     return(typeProvider.Add(assembly.GetAllTypes()));
 }