> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kasoftware.com/llms.txt
> Use this file to discover all available pages before exploring further.

# arc:import

> 在多个库版本可用时选择正确版本，并可选择将指定版本绑定到命名空间前缀以避免名称冲突。

export const siteNameShort = "知行之桥";

arc:import 关键字允许在有多个库可用时，选择正确的版本。除此之外，还允许将特定版本绑定到命名空间前缀上。

可以使用 arc:import 从全局程序集缓存(GAC)或 classpath 之外导入库。

## 端口版本

arc:import 关键字允许加载多个版本，然后显式地选择使用哪个版本。

* 对于 .NET 版本，可以将端口和格式化器集放到 GAC 中并使用 arc:import 在脚本中加载要使用的版本。

* 对于跨平台版本，可以将端口和格式化器 JAR 文件放到常规的 classpath 外（例如，WEB-INF/lib 文件夹下的一个子目录），从而提供了一种方法来保留同一 JAR 的多个并发版本。然后可以使用 arc:import 关键字来选择要加载的 JAR 文件。

## 名称简化

arc:import 关键字也可以帮助简化运算器或格式化器的名称。例如，当自定义的格式化器需要完整的类名称时，可以使用 arc:import 在完整的类名称前加上一个较短的名称作为前缀。

## 参数

* **lib**：要导入库的名称。在 .NET 版本中，这指定了程序集名称（最好是完全限定的名称）。在 Java 版本中，它指定了 JAR 文件的路径。
* **ns**：运算器或格式化将被绑定到的命名空间。在查找过程中，指定的命名空间将被赋予优先级。如果没有指定，将会使用常规规则去查找实现类。
* **prefix**：使用相同名称但在不同库，不同命名空间或两者中实现的运算器或格式化器时，用于避免名称冲突的前缀。除此参数外，还必须指定 ns 属性。

## 控制属性

无

## 示例

加载 2.0 版本的库：

```xml theme={null}
<arc:import lib="myops, Version=2.0.0.0" ns="MyCompany.MyOps" prefix="my2"/>
<arc:call op="my2.Operation" ...>
```

应用在 `CustomFormatters.jar` 中定义的一个自定义 `count` 格式化器：

```xml theme={null}
<arc:import lib="CustomFormatters.jar" ns="com.mycompany.Formatters" prefix="cust"/>
<arc:set attr="size" value="[elem.number | cust.count]"/>
```
