Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 » Mobile Link サーバ管理 » Mobile Link サーバ API » .NET の同期スクリプト » 共有アセンブリをロードする方法

 

.NET アセンブリのロード

.NET アセンブリは、タイプ、メタデータ、プログラムコードのパッケージです。.NET アプリケーションでは、すべてのコードがアセンブリになければなりません。アセンブリファイルの拡張子は .dll または .exe です。

アセンブリには、次の種類があります。

  • プライベートアセンブリ   ファイルシステム内のファイル。

  • 共有アセンブリ   グローバルアセンブリキャッシュにインストールされるアセンブリ。

Mobile Link では、クラスを含むアセンブリが指定されないと、クラスをロードしてそのクラスのメソッドを呼び出すことができません。指定する必要があるのは、Mobile Link が直接呼び出すアセンブリのみです。このアセンブリによって、その他の必要なアセンブリが呼び出されます。

たとえば、Mobile Link が MyAssembly を呼び出すと、MyAssembly が UtilityAssembly と NetworkingUtilsAssembly を呼び出します。この場合は、Mobile Link が MyAssembly だけを探すように設定します。

Mobile Link では、次の方法でアセンブリをロードできます。

  • -sl dnet ( -MLAutoLoadPath ) を使用   このオプションは、プライベートアセンブリに対してのみ有効です。このオプションは、アプリケーションのベースディレクトリへのパスを設定し、そのディレクトリ内のすべてのアセンブリをロードします。

    -MLAutoLoadPath オプションを使用すると、イベントスクリプトの完全に修飾されたメソッド名を入力するときに、ドメインを指定できません。

    -MLAutoLoadPath でパスとディレクトリを指定すると、次のアクションが実行されます。

    • このパスがアプリケーションベースパスとして設定される

    • 指定したディレクトリで .dll または .exe の付くすべてのファイルのすべてのクラスがロードされる

    • 1 つのアプリケーションドメインが作成され、ドメインが指定されていないすべてのユーザクラスがそのドメインにロードされる

    このオプションでは、グローバルアセンブリキャッシュ内のアセンブリを直接呼び出すことはできません。これらの共有アセンブリを呼び出すには、-MLDomConfigFile を使用します。

  • -sl dnet ( -MLDomConfigFile ) を使用   このオプションは、プライベートアセンブリと共有アセンブリの両方に使用できます。このオプションを使用するには、ドメインとアセンブリの設定を含む設定ファイルが必要です。このオプションは、共有アセンブリがある場合、アプリケーションベースパス内のすべてのアセンブリをロードする必要がない場合、またはその他の理由で設定ファイルを使用する必要がある場合に使用してください。

    このオプションを使用すると、Mobile Link は指定されたドメイン設定ファイル内の設定を読み込みます。ドメイン設定ファイルには、1 つまたは複数の .NET ドメインの設定が入っています。このファイルに複数のドメインが記述されている場合は、1 番目に指定されているドメインがデフォルトドメインとして使用されます (デフォルトドメインは、指定されたドメインがスクリプトにない場合に使用されます)。

    Mobile Link はアセンブリをロードするときに、まずプライベートアセンブリとしてロードし、次にグローバルアセンブリキャッシュからアセンブリをロードしようとします。プライベートアセンブリは、アプリケーションベースフォルダにあります。共有アセンブリはグローバルアセンブリキャッシュからロードされます。

-MLDomConfigFile オプションでは、ドメイン設定ファイルで指定されているアセンブリのみが、イベントスクリプトから直接呼び出せます。

 サンプルのドメイン設定ファイル