Uzyskaj ścieżki złożeń używanych w polu Typ
Potrzebuję metody, która pobiera typ i zwraca ścieżki wszystkich zestawów użytych w typie. Ja to napisałem:
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;
}
}
Zazwyczaj ta metoda wykonuje zadanie, ale ma pewne wady:
Nie znalazłem sposobu, aby uzyskać odwoływane zestawy / typy z samego typu, więc użyłem type.Assembly.GetReferencedAssemblies () i otrzymałem odwołania do całego zespołu, a nie tylko te, które odnoszą się do typu.
type.Assembly.GetReferencedAssemblies () zwraca wartość AssemblyName i nie ma właściwości location / path / filepath. Aby uzyskać właściwość location, po raz pierwszy użyłem Assembly.Load (), a następnie użyłem właściwości location. Nie chcę, aby zestawy ładujące pobierały swoją ścieżkę, ponieważ nie są konieczne, a ponieważ Assembly.Load () może się nie powieść z FileNotFoundException lub BadImageFormatException.