Forum: VB.NET |
Thema:
Objekt über den Klassennamen (als string) erstellen |
Von:
G. Guest (
09.01.2006 11:37) |
Hallo,
normalerweise erstellt man ein Objekt aus einer Klasse
wie folgt:
Public Class cKlasse
...'irgendeine Klasse
end class
dim Kl as cKlasse = new cKlasse
oder meinetwegen auch so:
dim KL as new cKlasse
Ich will jetzt aber folgendermaßen ein Objekt erstellen:
dim KL as object = ErzeugeObject("cKlasse")
Dabei steht "ErzeugeObject" für die Routine(n), die ich suche.
(Microsoft.VisualBasic.CreateObject ist nur für ActiveX- Anwendungen geeignet)
Hintergrund:
===========
Ich habe eine Anwendung, in der ich ziemlich viele Reports (Crystal Report) habe.
Aus einer xml-Tabelle heraus bestimme ich den gewünschte
ReportklassenName:
Diese sieht als vereinfachtes Beispiel so aus:
Seite ReportklassenName
1 Report_Hans
2 Report_Hugo
3 Report_Emil
4 Report_Otto
<xml>
<Tabelle>
<Seite>1</Seite>
<ReportklassenName>Report_Hans</ReportklassenName>
</Tabelle>
<Tabelle>
<Seite>2</Seite>
<ReportklassenName>Report_Hugo</ReportklassenName>
</Tabelle>
<Tabelle>
<Seite>3</Seite>
<ReportklassenName>Report_Emil</ReportklassenName>
</Tabelle>
<Tabelle>
<Seite>4</Seite>
<ReportklassenName>Report_Otto</ReportklassenName>
</Tabelle>
</xml>
Daraus will ich dann eine Instanz bilden:
(den Quelltext zur Abfrage der Tabelle lasse ich weg..)
dim ReportklassenName as string '(aus xml- Tabelle ermitteln)
dim obj as object = ErzeugeObject(ReportklassenName)
dim rpt as ReportClass = ctype(obj, ReportClass)
wobei die Reportklasse aus der obigen Tabelle ermittelt wurde und die Werte:
"Report_Hans", "Report_Hugo", "Report_Emil",
"Report_Otto"
annehmen kann.
Frage dazu:
==========
Kann es sein, dass man hier mit System.Reflection
arbeiten muß ?
Danke und Gruß
Bernd.
Betreff |
Von |
Datum |
|
|
G.
Guest
|
09.01.2006 13:27 |
|
|
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!