Springen naar inhoud

Reference dll's


  • Log in om te kunnen reageren

#1

Vladimir Lenin

    Vladimir Lenin


  • >250 berichten
  • 829 berichten
  • Ervaren gebruiker

Geplaatst op 05 juli 2009 - 19:38

Ik zit met volgende vraag:

Je kan in C# met de klasse Assembly de huidige (in uitvoer zijnde) Assembly opvragen, maar stel dat je het programma als volgt compileert:
csc /target:winexe /reference:B.dll /reference:C.dll A.cs
Is er dan een methode om toegang tot de Assemblies van B.dll en C.dll te krijgen, en bijvoorbeeld een lijst met de geprogrammeerde types op te vragen. Ik heb het namelijk nodig om het doorzoeken van alle methodes (dus ook gerelateerde) op een bepaald attribuut.
"Als je niet leeft zoals je denkt, zul je snel gaan denken zoals je leeft."
--Vladimir Lenin-- (Владимир Ильич Ульянов)

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

virtlink

    virtlink


  • >100 berichten
  • 158 berichten
  • Ervaren gebruiker

Geplaatst op 05 juli 2009 - 22:43

Met de statische methode GetEntryAssembly() kan je de gecompileerde assembly opvragen. Daarvan krijg je de namen van de gerefereerde assemblies met GetReferencedAssemblies(). Van deze array van AssemblyName objecten kan je eentje in de statische Load() methode stoppen, waarmee je een Assembly object krijgt die die assembly voorstelt. Om alle typen in de assembly te krijgen roep je GetTypes() aan op het Assembly object.

Assembly compiledAssembly = Assembly.GetEntryAssembly();
AssemblyName[] referencedAssemblies = compiledAssembly.GetReferencedAssemblies();
foreach(AssemblyName name in referencedAssemblies)
{
	Assembly asm = Assembly.Load(name);
	// Doe je ding, bijvoorbeeld:
	Type[] types = asm.GetTypes();
	foreach(Type t in types)
		Console.Write(t.ToString());
}
(Code is niet getest.)
"Niet gehinderd door enige kennis van zaken..."





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures