Operativsystem: .............................................................
Operativsystem: .............................................................
Operativsystem: .............................................................
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Hvilke klasser mv ligger der i en bestemt DLL-fil som f.eks. System.Windows.Forms.dll eller –<br />
hvilket er det samme – hvilke typer indeholder den assembly som hedder<br />
’System.Windows.Forms’? (Navnet på assembly’en er altid ’uden .dll’!).<br />
Det følgende program er et nyttigt program til at finde de indbyggede klasser i C#. Lidt senere skal<br />
præsenteres et program som kan vise data for den enkelte klasse.<br />
dll_reflection.exe:<br />
//fil: dll_reflection.cs<br />
//eks på reflection, få viden om en class i C# som inputtes som kommando linje parameter<br />
//eks: dll_reflection System.Web eller dll_reflection person (lokal DLL fil)<br />
//navne som ’System.Web’ eller ’person’ kaldes i C# jargon’en for ’friendly names’ (modsat kodede navne)<br />
//programmet skal ligge i .NET mappen sammen med csc o.a. ellers kan det ikke 'finde' C#-kerne-DLL’erne<br />
//programmet producerer en HTML fil med data om DLL filen:<br />
using System.Reflection;<br />
using System;<br />
using System.IO;<br />
public class app{<br />
public static void Main(string[] args){<br />
//try .. catch fanger evt fejl fx at der indtastes en ikke eksisterende DLL fil!<br />
Assembly ass=null;<br />
try{<br />
//assembly’en skal loades I RAM for at kunne analyseres:<br />
ass=Assembly.Load(args[0]);<br />
}catch{<br />
Console.WriteLine("{0} er ikke en gyldig DLL!",args[0]);<br />
}<br />
//GetTypes() returnerer en tabel af typer eller klasser:<br />
Type[] types=ass.GetTypes();<br />
string str=null;<br />
//foreach anvendes fordi antallet af klasser I DLL filen ikke kendes på forhånd<br />
foreach(Type t in types){<br />
str+=t+"";<br />
}<br />
//CreateText() returnerer en Writer:<br />
//hvis filen findes i forvejen overskrives den:<br />
//filen navngives med DLL navnet:<br />
StreamWriter writer=File.CreateText(args[0]+".html");<br />
//der skrives HTML koder til filen:<br />
writer.WriteLine("{0}",ass);<br />
writer.WriteLine("{0}",ass);<br />
writer.WriteLine("{0}",str);