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

SQL Anywhere 12.0.0 (中文) » MobiLink - 服务器管理 » MobiLink 服务器 API » 使用 .NET 编写同步脚本 » 装载共享程序集

 

装载程序集

.NET 程序集是一个由类型、元数据和可执行代码组成的程序包。在 .NET 应用程序中,所有代码必须都在程序集中。程序集文件的扩展名为 .dll.exe

存在以下类型的程序集:

  • 专用程序集   专用程序集是文件系统中的一个文件。

  • 共享程序集   共享程序集是安装在全局程序集高速缓存中的程序集。

MobiLink 必须先找到一个包含某个类的程序集,然后才能装载该类并调用该类的方法。MobiLink 只需要找到它直接调用的程序集。然后,该程序集便可调用它所需要的任何其它程序集。

例如,MobiLink 调用 MyAssembly,而 MyAssembly 调用 UtilityAssembly 和 NetworkingUtilsAssembly。在这种情况下,只需要通过配置使 MobiLink 能够找到 MyAssembly。

MobiLink 提供了以下装载程序集的方法:

  • 使用 -sl dnet ( -MLAutoLoadPath )   此选项只适用于专用程序集。此选项将路径设置为应用程序基目录,并装载该目录下的所有程序集。

    如果使用 -MLAutoLoadPath 选项,则在输入事件脚本的完全限定方法名时不能指定域。

    通过 -MLAutoLoadPath 选项指定了路径和目录后,MobiLink 将执行以下操作:

    • 将该目录设置为应用程序基路径

    • 装载指定目录中所有扩展名为 .dll.exe 的文件内的所有类

    • 创建一个应用程序域,并将所有未指定域的用户类载入该域

    不能通过此选项直接调用全局程序集高速缓存中的程序集。要调用这些共享程序集,请使用 -MLDomConfigFile。

  • 使用 -sl dnet ( -MLDomConfigFile )   此选项既适用于专用程序集,也适用于共享程序集。它需要一个包含域和程序集设置的配置文件。您可在以下情况下使用此选项:当您具有共享程序集时,当您不想装载应用程序基路径中的所有程序集时,或者当您出于某种其它原因需要使用配置文件时。

    如果使用此选项,MobiLink 将读取指定域配置文件中的设置。域配置文件包含一个或多个 .NET 域的配置设置。如果该文件中指定了多个域,将使用指定的第一个域作为缺省域。(对于未指定域的脚本,将使用缺省域。)

    装载程序集时,MobiLink 首先尝试装载专用程序集,然后尝试从全局程序集高速缓存中装载程序集。专用程序集必须位于应用程序基目录中。共享程序集从全局程序集高速缓存中装载。

使用 -MLDomConfigFile 选项时,只能从事件脚本直接调用域配置文件中指定的程序集。

 示例域配置文件