Load assemblies with injector module
I would suggest swapping the checks on this line from

where moduleType.IsAssignableFrom(assemblyType) &amp;&amp; !assemblyType.IsAbstract

to

where !assemblyType.IsAbstract &amp;&amp; moduleType.IsAssignableFrom(assemblyType)

Checking a boolean property will be faster than a method call to check the type. If it's not abstract why check the type?

You might also want to filter further by requiring that it is a class:

where assemblyType.IsClass 
      &amp;&amp; !assemblyType.IsAbstract 
      &amp;&amp; moduleType.IsAssignableFrom(assemblyType)