Hallo,
Zitat von
Der_Unwissende:
aber Steine habe ich auch keine bei.
Dann bin ich beruhigt.
Du hast mich auf alle Fälle schonmal auf die Fährte gesetzt.
Ich komme jetzt aber partout nicht weiter
Folgende Klassenbibliothek:
Code:
Imports System
Namespace MyAssembly
Public Class Maths
Public Function Add(ByVal numberOne As Integer, ByVal numberTwo As Integer)
Return numberOne + numberTwo
End Function
End Class
End Namespace
Ich habe mir jetzt gedacht, ich mache eine Konsolenanwendung, in der ich "einfach" nur die "Add" Funktion aufrufe:
Code:
Imports System
Imports System.Reflection
Module Module1
Sub Main()
Dim
asm As Assembly = Assembly.LoadFrom("<Pfad>\MyAssembly.dll")
Console.WriteLine("Types des Klassenbiliothek:")
Dim typeArray As Type()
typeArray =
asm.GetTypes()
Dim MonType As Type
For Each MonType In typeArray
Console.WriteLine("Type : " + MonType.Name)
Next
' *** Jetzte Speziell für Type "Maths" abrufen
Dim typeSingle As Type
typeSingle =
asm.GetType("Maths")
If (typeSingle Is System.DBNull.Value) Then
Console.WriteLine("typeSingle ist leer ?!")
End If
Dim t2 As MemberInfo() = typeSingle.GetMembers() ' Hier kommt immer der Fehler :-(
End Sub
End Module
Bis zu Dim t2 As MemberInfo() funktioniert auch alles. Die Fehlermeldung "typeSingle ist leer ?!" kommt NICHT.
In der besagten Zeile bricht der Compiler mit "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt." ab.
Das kann doch nur eine Banalität sein
- aber ich komm nicht drauf. Probiert (wie ich "probieren" beim programmieren hasse) habe ich auch schon die typeSingle Zuweisung wie folgt zu ändern:
Code:
typeSingle =
asm.GetType("MyAssembly.Maths")
oder
Code:
typeSingle =
asm.GetType("MyAssembly")
Gleiche Meldung. Entwicklungsumgebung ist VS2005.
Achso: In der Ausgabe von "Console.WriteLine("Type : " + MonType.Name)" ist "Maths" enthalten.
Zweifel langsam an mir selbst, das kann doch nicht so wild sein ?!
Grüße,
Sebastian