title: Get paths of assemblies used in Type
body: <p>I need a method that takes a Type and returns the paths of all assemblies that used in the type.
  I wrote this:</p>
  
  <pre><code>public static IEnumerable&lt;string&gt; GetReferencesAssembliesPaths(this Type type)
  {   
   yield return type.Assembly.Location;
  
   foreach (AssemblyName assemblyName in type.Assembly.GetReferencedAssemblies())
   {
    yield return Assembly.Load(assemblyName).Location;
   }
  }
  </code></pre>
  
  <p>Generally this method do the job, but have some disadvantages:</p>
  
  <ul>
  <li><p>I didn't found how to get the referenced assemblies/types from the type itself, so i used type.Assembly.GetReferencedAssemblies() and got the references of the whole assembly, not just those that related to the type.</p></li>
  <li><p>type.Assembly.GetReferencedAssemblies() returns AssemblyName and has no location/path/filepath property. To get the location property, i first used Assembly.Load() and then used the location property. I dont want load assemblies to get their path, because they not necessary used, and because Assembly.Load() can fail with FileNotFoundException or BadImageFormatException.</p></li>
  </ul>