/// <summary>
 /// Initializes a new instance of the <see cref="PluginFinderConfiguration"/> class.
 /// </summary>
 /// <param name="excludeSystemAssemblies">Whether to exlude System* assemblies.</param>
 /// <param name="typesToExclude">Types to exclude as candidates for a plugin.</param>
 /// <param name="assembliesToExclude">The assemblies to exclude, when searching for a plugin.</param>
 /// <param name="assembliesToLoadExplicitly">The assemblies to load explicitly.</param>
 /// <param name="typeToExplicitlyLookFor">A possible type to explicitly look for.</param>
 public PluginFinderConfiguration(
     ExcludeSystemAssemblies excludeSystemAssemblies,
     IList <Type> typesToExclude,
     IList <AssemblyName> assembliesToExclude,
     IList <AssemblyName> assembliesToLoadExplicitly,
     Option <string> typeToExplicitlyLookFor)
 {
     TypeToExplicitlyLookFor    = typeToExplicitlyLookFor;
     TypesToExclude             = typesToExclude;
     ExcludeSystemAssemblies    = excludeSystemAssemblies;
     AssembliesToExclude        = assembliesToExclude;
     AssembliesToLoadExplicitly = assembliesToLoadExplicitly;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="PluginFinderConfiguration"/> class.
 /// </summary>
 /// <param name="excludeSystemAssemblies">Whether to exlude System* assemblies.</param>
 /// <param name="typesToExclude">Types to exclude as candidates for a plugin.</param>
 /// <param name="assembliesToExclude">The assemblies to exclude, when searching for a plugin.</param>
 /// <param name="assembliesToLoadExplicitly">The assemblies to load explicitly.</param>
 /// <param name="typeToExplicitlyLookFor">A possible type to explicitly look for.</param>
 public PluginFinderConfiguration(
     ExcludeSystemAssemblies excludeSystemAssemblies, 
     IList<Type> typesToExclude,
     IList<AssemblyName> assembliesToExclude, 
     IList<AssemblyName> assembliesToLoadExplicitly, 
     Option<string> typeToExplicitlyLookFor)
 {
     Contract.Requires(typesToExclude != null);
     Contract.Requires(assembliesToExclude != null);
     Contract.Requires(assembliesToLoadExplicitly != null);
     Contract.Requires(typeToExplicitlyLookFor != null);
     
     TypeToExplicitlyLookFor = typeToExplicitlyLookFor;
     TypesToExclude = typesToExclude;
     ExcludeSystemAssemblies = excludeSystemAssemblies;
     AssembliesToExclude = assembliesToExclude;
     AssembliesToLoadExplicitly = assembliesToLoadExplicitly;
 }