Abrufen der Pfade der in Type verwendeten Assemblys

Ich benötige eine Methode, die einen Typ verwendet und die Pfade aller im Typ verwendeten Assemblys zurückgibt. Ich habe das geschrieben:

public static IEnumerable<string> GetReferencesAssembliesPaths(this Type type)
{   
 yield return type.Assembly.Location;

 foreach (AssemblyName assemblyName in type.Assembly.GetReferencedAssemblies())
 {
  yield return Assembly.Load(assemblyName).Location;
 }
}

Im Allgemeinen erledigt diese Methode die Arbeit, hat aber einige Nachteile:

Ich habe nicht gefunden, wie die referenzierten Assemblys / Typen vom Typ selbst abgerufen werden können, daher habe ich type.Assembly.GetReferencedAssemblies () verwendet und die Referenzen der gesamten Assembly abgerufen, nicht nur die, die sich auf den Typ beziehen.

type.Assembly.GetReferencedAssemblies () gibt AssemblyName zurück und hat keine Eigenschaft location / path / filepath. Um die location-Eigenschaft zu erhalten, habe ich zuerst Assembly.Load () und dann die location-Eigenschaft verwendet. Ich möchte nicht, dass Load-Assemblys ihren Pfad abrufen, da sie nicht unbedingt verwendet werden und Assembly.Load () mit FileNotFoundException oder BadImageFormatException fehlschlagen kann.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage