| 

.NET C# Java Javascript Exception

2
Wie ermittle ich programmgesteuert, welche Asssemblies von meiner Hauptanwendung oder aber meinen eigenen Komponenten referenziert werden? Die Abfrage sollte nicht nur aus den jeweiligen Anwendungen heraus, sondern auch über die Assemblies selbst (nach entsprechender Anwahl) möglich sein.
News:
20.07.2011
DrDan 21 2
1 Antwort
2
Für Deine komplette Anwendung, nimm jede AppDomain (evtl. hast ja nur eine) und akkumulier die referenzierten Assemblies, etwa so

var assembliesInThisAppDomain = AppDomain.CurrentDomain.GetAssemblies();

var namesOfReferencedAssemblies =
assembliesInThisAppDomain.Aggregate<Assembly, List<AssemblyName>>
(new List<AssemblyName>(),
(accu, asm) =>
{
accu.AddRange(asm.GetReferencedAssemblies());
return accu;
});

EDIT
Dabei können aber nach der Akkumulation doppelte Einträge in namesOfReferencedAssemblies enthalten sein, die kannst du aber mit einem nachgelagerten LINQ Distinct Aufruf rausfiltern, falls Du das brauchst.
END EDIT

Für eine Komponente rufst Du innerhalb der Komponente in einer beliebigen Methode

this.GetType().Assembly.GetReferencedAssemblies();

und für eine Menge von Assemblies mach es so wie für die AppDomain beschrieben.

War es das, was Du suchst?

Gruß
Florian
20.07.2011
ffordermaier 8,4k 3 9

Stelle deine Assemblies-Frage jetzt!