Multidesk.be » Forums » .Net » Alle attributen/method's van een klasse at runtime vinden (gesloten)

Helpinformatie
Dit onderwerp bevindt zich in het archief.
Het is bijgevolg niet mogelijk er nog op te reageren.
  • Pagina
  • 1 van 1
  • RSS
  • Eerste ongelezen reactie
  • Plaats een reactie
  • Abonneer mij
  • Onderwerp sluiten
0 gasten lezen dit onderwerp.
^ Onderwerp geschreven door Bridge_Burner op zondag 25 juli 2004 om 14:34:47.
Bridge_Burner heeft nog geen avatar toegevoegd
Multiviteit: 404
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
Pieps,

stel ik heb een klasse :
CODE
  1.  
  2. Class Bedrijf
  3.      Private straat As String
  4.      Private nummer As Integer
  5.      
  6.      Public Function GeefAdres() As String
  7.          Return straat & \" \" & nummer
  8.      End Function
  9.  
  10. End Class
  11.  

nu kan ik via een instantie van Bedrijf wel achterhalen dat de klassenaam Bedrijf is via het .GetType maaar ik zou veel meer moeten achterhalen, zoals bv zen attributen zijnde straat en nummer en zen method\'s zijnde GeefAdres()

dus concreet kwil at runtime volledig de structuur van men klassen (types) kunnen opvragen ......... snapt jet ?

dus bv da ik kan laten afdrukken dat de Klasse Bedrijf bestaat uit de attributen straat en nummer en de method\'s ...........

tis natuurlijk ni voor af te drukken maar tis maar een voorbeeldje hé

gegroet,
tim
^ Reactie #1 geschreven door Bridge_Burner op zondag 25 juli 2004 om 15:37:02.
Bridge_Burner heeft nog geen avatar toegevoegd
Multiviteit: 404
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
door hulp op OHD al opgelost :)
uitkomst als voorbeeld code voor te testen :

CODE
  1.  
  2.     Public Sub Main()
  3.         'ALLE METHODS :
  4.         Dim myType As Type = GetType(Contact.Contact)
  5.         Dim myArrayMethodInfo As MethodInfo() = myType.GetMethods((BindingFlags.Public Or BindingFlags.Instance Or BindingFlags.DeclaredOnly))
  6.         Console.WriteLine((ControlChars.Cr + "The Number of Public Methods are :" + myArrayMethodInfo.Length.ToString()))
  7.         Console.WriteLine("The Names of the Public Methods are :")
  8.         DisplayMethodInfo(myArrayMethodInfo)
  9.         Dim myArrayMethodInfo1 As MethodInfo() = myType.GetMethods((BindingFlags.NonPublic Or BindingFlags.Instance Or BindingFlags.DeclaredOnly))
  10.         Console.WriteLine((ControlChars.Cr + "The Number of Protected Methods are :" + myArrayMethodInfo1.Length.ToString()))
  11.         Console.WriteLine("The Names of the Protected methods are :")
  12.         DisplayMethodInfo(myArrayMethodInfo1)
  13.         Console.ReadLine()
  14.  
  15.         'ALLE FIELDS : 
  16.         Dim myArrayFieldInfo As FieldInfo() = myType.GetFields((BindingFlags.Public Or BindingFlags.Instance Or BindingFlags.DeclaredOnly))
  17.         Console.WriteLine((ControlChars.Cr + "The Number of Public Fields are :" + myArrayFieldInfo.Length.ToString()))
  18.         Console.WriteLine("The Names of the Public Fields are :")
  19.         DisplayFieldInfo(myArrayFieldInfo)
  20.         Dim myArrayFieldInfo1 As FieldInfo() = myType.GetFields((BindingFlags.NonPublic Or BindingFlags.Instance Or BindingFlags.DeclaredOnly))
  21.         Console.WriteLine((ControlChars.Cr + "The Number of Protected Fields are :" + myArrayFieldInfo1.Length.ToString()))
  22.         Console.WriteLine("The Names of the Protected Fields are :")
  23.         DisplayFieldInfo(myArrayFieldInfo1)
  24.         Console.ReadLine()
  25.     End Sub
  26.  
  27.     Public Sub DisplayMethodInfo(ByVal myArrayMethodInfo() As MethodInfo)
  28.         Dim i As Integer
  29.         For i = 0 To myArrayMethodInfo.Length - 1
  30.             Dim myMethodInfo As MethodInfo = CType(myArrayMethodInfo(i), MethodInfo)
  31.             Console.WriteLine((ControlChars.Cr + "Name of the Method is :" + myMethodInfo.Name))
  32.         Next i
  33.     End Sub
  34.     Public Sub DisplayFieldInfo(ByVal myArrayFieldInfo() As FieldInfo)
  35.         Dim i As Integer
  36.         For i = 0 To myArrayFieldInfo.Length - 1
  37.             Dim myFieldInfo As FieldInfo = CType(myArrayFieldInfo(i), FieldInfo)
  38.             Console.WriteLine((ControlChars.Cr + "Name of the Field is :" + myFieldInfo.Name + " and GUID : " + myFieldInfo.FieldType.GUID.ToString))
  39.         Next i
  40.     End Sub
  41.  
^ Reactie #2 geschreven door rObkE op zondag 25 juli 2004 om 15:51:08.
rObkE heeft nog geen avatar toegevoegd
Multiviteit: 3765
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
Sja, hier zitten nog niet echt de zware .Net-fans eh. :p
  • Pagina
  • 1 van 1
  • RSS
  • Eerste ongelezen reactie
  • Plaats een reactie
  • Abonneer mij
  • Onderwerp sluiten