Avatar billede sovsekoder Nybegynder
23. marts 2005 - 11:13 Der er 5 kommentarer og
1 løsning

Kode analyse af methoder i .NET

Jeg laver et program der kan generere et UML-diagram når man giver den en .NET fil. Jeg bruger reflection til at kigge filen igennem.

Mit problem er nu, at jeg gerne vil undersøge hvilke klasser en enkelt metode gør brug af, hvordan gør jeg det? (jeg har kun fundet ud af hvordan man læser parametre og retur type på en metode).

Det eneste jeg kan komme på nu, er at køre ILDASM og få den til at outputte .il-koden, som derefter kan parses og analyseres (så man altså genererer UML-diagrammet udfra IL koden istedet for via reflection).

For atkomme med et eksempel:

public class A
{
  public B b = new B();
}

public class B
{
  public JegBrugerAInternt()
  {
    A aInternal = new A();
  } 
}

jeg kan via reflection se at A indeholder B, men ikke at B bruger A (via metoden "JegBrugerAInternt)
Avatar billede arne_v Ekspert
23. marts 2005 - 11:17 #1
Hvorfor scanner du ikke kilde kode ?
Avatar billede sovsekoder Nybegynder
23. marts 2005 - 11:30 #2
tak, klart også en muliged!

men jeg gør det ikke nu, fordi reflection namespacet har så mange luksus funktioner til at gennemløbe koden. Jeg genererer mit UML-træ med få let læselige kodelinier - og det er nemt at tage fat i de refererede assemblies og putte dem med ind i diagrammet.
Avatar billede sovsekoder Nybegynder
23. marts 2005 - 11:37 #3
har set på nettet at Lutz Roeder har lavet et ILReader-framework, som jeg går udfra kan bruges til at gennemlæse assembliet nemt - men jeg kan ikke finde det ...
Avatar billede arne_v Ekspert
23. marts 2005 - 12:20 #4
Det må være en del af hans reflector program - http://www.aisto.com/roeder/dotnet/
Avatar billede sovsekoder Nybegynder
23. marts 2005 - 13:34 #5
ja det tror jeg også... fandt biblioteket (altså bare .dll filen) i codeguru:
http://www.c-sharpcorner.com/Code/2003/Feb/CsLint.asp

hvor der er noget source code der bruger den... ser ud til at den har en fin metode til at hente IL-instruktionerne for en given metode - jeg prøver at gå den vej.

tak for hjælpen indtil nu... lader spørgsmålet stå åbent lidt endnu
Avatar billede sovsekoder Nybegynder
24. marts 2005 - 11:01 #6
fik løst det ved at bruge IL-reader...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester