Eine .NET-Assembly ist ein Paket von Typen, Metadaten und ausführbarem Code. In .NET-Anwendungen muss der gesamte Code in einer Assembly enthalten sein. Assembly-Dateien haben die Erweiterung .dll oder .exe.
Es gibt zwei Arten von Assemblies:
Private Assemblies Eine private Assembly ist eine Datei im Dateisystem.
Gemeinsam verwendete Assemblies Eine gemeinsam verwendete Assembly ist eine Assembly, die im globalen Assembly-Cache installiert ist.
Damit MobiLink eine Klasse laden und eine Methode dieser Klasse aufrufen kann, muss das Programm die Position der Assembly ermitteln, die die Klasse enthält. MobiLink braucht nur die Position der Assembly zu ermitteln, die direkt aufgerufen wird. Die Assembly kann dann ihrerseits jede beliebige andere erforderliche Assembly aufrufen.
Beispiel: MobiLink ruft "MeineAssembly" und "MeineAssembly" ruft "UtilityAssembly" und "NetworkingUtilsAssembly" auf. In dieser Situation muss MobiLink nur für den Aufruf von "MeineAssembly" konfiguriert werden.
MobiLink bietet zwei Möglichkeiten für das Laden von Assemblies:
-sl dnet verwenden ( -MLAutoLoadPath ) Diese Option kann nur für private Assemblies verwendet werden. Sie setzt den Pfad auf das Stammverzeichnis der Anwendung und lädt alle in diesem Verzeichnis enthaltenen Assemblies.
Wenn Sie die Option -MLAutoLoadPath verwenden, können Sie im Ereignisskript bei der Eingabe eines voll qualifizierten Methodennamens keine Domäne angeben.
Wenn Sie einen Pfad und ein Verzeichnis mit –MLAutoLoadPath festlegen, geht MobiLink wie folgt vor:
Dieser Pfad wird als Basispfad der Anwendung festgesetzt.
Alle Klassen in allen Dateien mit der Erweiterung .dll oder .exe in dem angegebenen Verzeichnis werden geladen.
Eine Anwendungsdomäne wird erstellt, in die alle Benutzerklassen geladen werden, für die keine Domäne festgelegt wurde.
Assemblies im globalen Assembly-Cache können mit dieser Option nicht direkt aufgerufen werden. Diese gemeinsamen Assemblies können mit –MLDomConfigFile aufgerufen werden.
-sl dnet verwenden ( -MLDomConfigFile ) Diese Option kann für private und gemeinsame Assemblies verwendet werden. Sie erfordert eine Konfigurationsdatei, die Domänen- und Assembly-Einstellungen enthält. Verwenden Sie diese Option, wenn Sie gemeinsame Assemblies benutzen und nicht alle Assemblies aus dem Anwendungsstammpfad laden wollen oder wenn Sie aus irgendeinem anderen Grund eine Konfigurationsdatei verwenden müssen.
Wenn diese Option verwendet wird, liest MobiLink die Einstellungen in der Konfigurationsdatei der angegebenen Domäne. Eine Domänen-Konfigurationsdatei enthält Konfigurationseinstellungen für eine oder mehrere .NET-Domänen. Wenn mehrere Domänen in der Datei angegeben sind, wird die erste von ihnen als Standarddomäne verwendet. (Die Standarddomäne wird verwendet, wenn für ein Skript keine Domäne festgelegt wurde.)
MobiLink versucht zunächst, eine Assembly als private Assembly zu laden. Schlägt dies fehl, wird sie aus dem globalen Assembly-Cache eingelesen. Private Assemblies müssen im Anwendungsstammverzeichnis untergebracht sein. Gemeinsame Assemblies werden aus dem globalen Assembly-Cache geladen.
Bei der Verwendung der Option -MLDomConfigFile können nur Assemblies, die in der Domänen-Konfigurationsdatei angegeben sind, direkt aus Ereignisskripten aufgerufen werden.
Mit MobiLink wird ein Beispiel einer Domänen-Konfigurationsdatei namens mlDomConfig.xml installiert. Sie können Ihre eigene Datei völlig neu schreiben oder die Beispieldatei ändern, um sie an Ihre Anforderungen anzupassen. Die Beispieldatei befindet sich im SQL Anywhere-Pfad in
MobiLink\setup\dnet\mlDomConfig.xml
Der Inhalt der Beispiel-Domänen-Konfigurationsdatei mlDomConfig.xml lautet wie folgt:
<?xml version="1.0" encoding="utf-8"?> <config xmlns="iAnywhere.MobiLink.mlDomConfig" xsi:schemaLocation='iAnywhere.MobiLink.mlDomConfig mlDomConfig.xsd' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' > <domain> <name>SampleDomain1</name> <appBase>C:\scriptsDir</appBase> <configFile></configFile> <assembly name="Assembly1" /> <assembly name="Assembly2" /> </domain> <domain> <name>SampleDomain2</name> <appBase>\Dom2assembly</appBase> <configFile>\Dom2assembly\AssemblyRedirects.config</configFile> <assembly name="Assembly3" /> <assembly name="Assembly4" /> </domain> </config> |
Im Folgenden wird der Inhalt der Datei mlDomConfig.xml beschrieben:
name Der Domänenname, der bei der Angabe der Domäne in einem Ereignisskript verwendet wird. Ein Ereignisskript mit dem Format "DomainName:Namespace.Class.Method"
setzt voraus, dass die Domäne mit dem Namen DomainName in der Domänen-Konfigurationsdatei enthalten ist.
Sie müssen mindestens einen Domänennamen angeben.
appBase Das Verzeichnis, das die Domäne als Anwendungsstammverzeichnis verwenden soll. Alle privaten Assemblies werden von dem .NET CLR basierend auf diesem Verzeichnis geladen. Sie müssen "appBase" angeben.
configFile Die Konfigurationsdatei der .NET-Anwendung, die für die Domäne verwendet werden soll. Diese Angabe kann leer bleiben. Sie wird gewöhnlich verwendet, um das Bindungs- und Ladeverhalten der Standard-Assembly zu ändern. Weitere Hinweise zu Anwendungs-Konfigurationsdateien finden Sie in der .NET-Dokumentation.
assembly Der Name einer Assembly, die MobiLink beim Auflösen von Typenreferenzen in Ereignisskripten laden und suchen soll. Sie müssen mindestens eine Assembly angeben. Wenn eine Assembly in mehreren Domänen verwendet wird, muss sie in jeder Domäne als Assembly angegeben werden. Wenn die Assembly privat ist, muss sie im Anwendungsstammverzeichnis für die Domäne angegeben werden.
Weitere Hinweise zur mlsrv11-Option -sl dnet finden Sie unter Option -sl dnet.
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |