Anpassen der verfügbaren Objekte in "My" (Visual Basic)

In diesem Thema wird beschrieben, wie Sie steuern können, welche My-Objekte aktiviert werden, indem Sie die Konstante für bedingte Kompilierung _MYTYPE Ihres Projekts festlegen. Die integrierte Visual Studio-Entwicklungsumgebung (Integrated Development Environment, IDE) sorgt dafür, dass die Konstante für bedingte Kompilierung _MYTYPE für ein Projekt zum jeweiligen Projekttyp passt.

Vordefinierte _MYTYPE-Werte

Sie müssen die Compileroption /define verwenden, um die Konstante für bedingte Kompilierung _MYTYPE festzulegen. Wenn Sie einen eigenen Wert für die _MYTYPE-Konstante angeben, müssen Sie den Zeichenfolgenwert in Sequenzen mit umgekehrten Schrägstrichen/Anführungszeichen (\") einschließen. Sie können z. B. Folgendes angeben:

/define:_MYTYPE=\"WindowsForms\"  

In der folgenden Tabelle sind die für die Konstante für bedingte Kompilierung _MYTYPE festgelegten Werte für verschiedene Projekttypen dargestellt.

Projekttyp: _MYTYPE-Wert
Klassenbibliothek "Windows"
Konsolenanwendung "Console"
Web "Web"
Websteuerelementbibliothek "WebControl"
Windows-Anwendung "WindowsForms"
Windows-Anwendung, wenn sie mit einer benutzerdefinierten Sub Main-Methode beginnt "WindowsFormsWithCustomSubMain"
Windows-Steuerelementbibliothek "Windows"
Windows-Dienst "Console"
Empty "Empty"

Hinweis

Die Groß-/Kleinschreibung wird bei allen Zeichenfolgenvergleichen für bedingte Kompilierung beachtet, unabhängig davon, was für die Anweisung Option Compare festgelegt ist.

Abhängige _MY-Kompilierungskonstanten

Die Konstante für bedingte Kompilierung _MYTYPE steuert wiederum die Werte mehrere anderer _MY-Kompilierungskonstanten:

_MYTYPE _MYAPPLICATIONTYPE _MYCOMPUTERTYPE _MYFORMS _MYUSERTYPE _MYWEBSERVICES
"Console" "Console" "Windows" Nicht definiert "Windows" true
"Custom" Nicht definiert Nicht definiert Nicht definiert Nicht definiert Nicht definiert
"Empty" Nicht definiert Nicht definiert Nicht definiert Nicht definiert Nicht definiert
"Web" Nicht definiert "Web" false "Web" false
"WebControl" Nicht definiert "Web" false "Web" true
"Windows" oder "" "Windows" "Windows" Nicht definiert "Windows" true
"WindowsForms" "WindowsForms" "Windows" true "Windows" true
"WindowsFormsWithCustomSubMain" "Console" "Windows" true "Windows" true

Nicht definierte Konstanten für bedingte Kompilierung werden standardmäßig in FALSE aufgelöst. Sie können beim Kompilieren Ihres Projekts Werte für die nicht definierten Konstanten festlegen, um das Standardverhalten außer Kraft zu setzen.

Hinweis

Wenn für _MYTYPE "Custom" festgelegt ist, enthält das Projekt zwar den My-Namespace, aber keine Objekte. Das Festlegen von "Empty" für _MYTYPE verhindert allerdings, dass der Compiler den My-Namespace und dessen Objekte hinzufügt.

In der folgenden Tabelle werden die Auswirkungen der vordefinierten Werte auf die _MY-Kompilierungskonstanten beschrieben.

Konstante Bedeutung
_MYAPPLICATIONTYPE Diese Konstante aktiviert My.Application, wenn "Console", Windows" oder "WindowsForms" festgelegt ist:

– Die „Console“-Version wird aus ConsoleApplicationBase abgeleitet. und verfügt über weniger Member als die "Windows"-Version.
– Die „Windows“-Version wird aus ApplicationBase abgeleitet und verfügt über weniger Mitglieder als die „WindowsForms“-Version.
– Die „WindowsForms“-Version von My.Application wird aus WindowsFormsApplicationBase abgeleitet. Wenn die Konstante TARGET als "winexe" definiert ist, beinhaltet die Klasse eine Sub Main-Methode.
_MYCOMPUTERTYPE Diese Konstante aktiviert My.Computer, wenn "Web" oder "Windows" festgelegt ist:

– Die „Web“-Version wird aus ServerComputer abgeleitet und verfügt über weniger Mitglieder als die „Windows“-Version.
– Die „Windows“-Version von My.Computer wird aus Computer abgeleitet.
_MYFORMS Diese Konstante aktiviert My.Forms, wenn TRUE festgelegt ist.
_MYUSERTYPE Diese Konstante aktiviert My.User, wenn "Web" oder "Windows" festgelegt ist:

– Die „Web“-Version von My.User ist mit der Benutzeridentität der aktuellen HTTP-Anforderung verknüpft.
– Die „Windows“-Version von My.User ist mit dem aktuellen Prinzipal des Threads verknüpft.
_MYWEBSERVICES Diese Konstante aktiviert My.WebServices, wenn TRUE festgelegt ist.
_MYTYPE Diese Konstante aktiviert My.Log, My.Request und My.Response, wenn "Web" festgelegt ist.

Siehe auch