Glengamoi (Forum) · AspHeute · .NET Heute (RSS-Suche) · AspxFiles (Wiki) · .NET Blogs

Der Object Construct String

Geschrieben von: Christoph Wille
Kategorie: Komponenten

This printed page brought to you by AlphaSierraPapa

Im Artikel In VB Komponenten auf ASP Objekte zugreifen (Variante 2) habe ich gezeigt, wie man mit Hilfe der COM+ Services sehr einfach an die ASP-internen Objekte wie zB Response oder Request herankommen kann. Heute stelle ich ein weiteres sehr nützliches Feature für Komponenten vor, die COM+ Services verwenden: den Object Construct String.

Wie wäre es, wenn man einer Komponente bei der Installation einen Initialisierungsstring definieren könnte? Zum Beispiel denke ich hier an einen Connection String für eine Datenbankkomponente, oder anderweitige Informationen, die für alle Aufrufe gleichbleibend sind. Egal für was man den Construct String konkret verwendet, er hat auf alle Fälle ein gewichtiges Sicherheitsargument auf der Haben-Seite: ich muß diese Daten nicht in einer ASP Datei speichern (und jedes Mal an die Komponente übergeben), die auf alle Fälle leichter angreifbar ist als die COM+ Services Datenbank.

Den Construct String abfragen

Die Frage ist, warum zäume ich das Pferd von hinten auf, warum definiere ich nicht zuerst den Construct String den ich auslesen möchte? Nun, der Construct String muß einer Komponente zugewiesen werden, und noch habe ich keine!

Details welche Einstellungen man für eine COM+ Komponente in Visual Basic 6 machen muß, entnehmen Sie bitte dem Artikel In VB Komponenten auf ASP Objekte zugreifen (Variante 2). Ich stelle heute nur den Sourcecode vor, der notwendig ist, um mit dem Construct String zu arbeiten. Die wichtigen Zeilen Code aus ConstructString.cls sind folgende:

Implements IObjectConstruct

Private Sub IObjectConstruct_Construct(ByVal pCtorObj As Object)
    Dim strConstructString as String
    strConstructString = pCtorObj.ConstructString
End Sub

Was passiert hier: die Klasse implementiert ein Interface namens IObjectConstruct. Dieses wird von COM+ bei einer als COM+ Applikation registrierten Komponente abgefragt, und wenn vorhanden, wird automatisch die Methode Construct aufgerufen. Dieser wird ein Constructor-Objekt übergeben, aus dem wir per ConstructString Eigenschaft den Construct String auslesen können. That's it. Der obenstehende Code kann in jedes Projekt übernommen werden, er ändert sich nicht (natürlich speichert man den Construct String in einer Klassenvariable, nicht in einer Methodenvariable).

Um den Construct String "in action" zeigen zu können, habe ich noch eine Methode GetConstructString in das Objekt eingebaut. Das Projekt sieht (visuell) jetzt so aus:

Kompilieren, und fertig ist die Komponente. Jetzt müssen wir sie registrieren und den Construct String mitgeben.

Den Construct String definieren

Die detaillierten Schritte zur Erstellung einer COM+ Applikation und dem Registrieren einer Komponente lesen Sie bitte im Artikel In VB Komponenten auf ASP Objekte zugreifen (Variante 2) nach. Wir überspringen diese Schritte, und konfigurieren die Komponente AspHeute.ConstructStringSample:

Mit rechter Maustaste/Eigenschaften kann man die Komponenteneigenschaften einsehen. Wir interessieren uns für die Aktivierung der Komponente:

Hier sieht man bereits die fertig konfigurierte Komponente - Enable object construction muß selektiert werden, dann kann man den Constructor String eingeben. Wie gesagt, Anwendungsfälle sind Connection Strings oder anderweitige Konfigurationsdaten, die man gerne sicherer verwaltet hat als in ASP Dateien.

Was bin ich noch schuldig? Ach ja, den Beweis, daß es so funktioniert wie ich gesagt habe. Dazu habe ich eine simple ASP Datei geschrieben (constructtest.asp):

<%
Set xObj = Server.CreateObject("AspHeute.ConstructStringSample")
Response.Write xObj.GetConstructString()
%>

Nach Ausführung der Datei erhält man den Construct String einfach per Response.Write ausgegeben:

Schlußbemerkung

Die heute vorgestellte Komponente dient vornehmlich einem Zweck: als Copy & Paste Vorlage für eigene Komponenten, die Construct Strings einsetzen werden.

This printed page brought to you by AlphaSierraPapa

Download des Codes

Klicken Sie hier, um den Download zu starten.
http://www.aspheute.com/code/20020205.zip

Verwandte Artikel

In VB Komponenten auf ASP Objekte zugreifen (Variante 2)
http:/www.aspheute.com/artikel/20010322.htm
Klassenauflistungen mit dem Dictionary-Objekt
http:/www.aspheute.com/artikel/20020408.htm

Links zu anderen Sites

HOWTO: Access the COM+ Object Constructor String in a Visual Basic Component (Q271284)
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q271284

 

©2000-2006 AspHeute.com
Alle Rechte vorbehalten. Der Inhalt dieser Seiten ist urheberrechtlich geschützt.
Eine Übernahme von Texten (auch nur auszugsweise) oder Graphiken bedarf unserer schriftlichen Zustimmung.