# dotNet.reflection 库模块帮助文档

<details>  <summary>必读</summary>  <p>

## 参数说明

dotNet.reflection 所有函数的 assemblyOrPath 参数都支持以下类型

- .NET 程序集短名称
- .NET 程序集路径
- 已加载的 .NET 程序集对象
- 已导入的 .NET 命名空效果（自动获取加载该命名空间的程序集对象）

dotNet.reflection 所有函数的 options 参数都可选指定一个表对象，可指定的字段如下：
namespacePrefix/typeNames/typePattern/publicOnly/declaredOnly/includeInherited/includeMethods/includeProperties/includeEvents/includeFields/includeEnumValues/maxTypes/maxMembers。

typeNames 可指定类型全名或短名数组精确筛选；
typePattern 使用 aardio 模式匹配而非正则表达式。

## 示例

```aardio 
import dotNet.reflection; 
var data = dotNet.reflection.exportAssembly(
    "System.Windows.Forms",
    {
        namespacePrefix = "System.Windows.Forms";
        // typeNames = [  "System.Windows.Forms.Button" ];
        typePattern = `<Dialog!>|<View!>`; //等价于正则表达式 `(?>Dialog$|View$))` ，aardio 模式匹配非捕获组尾部只能用 `!` 表示尾部边界，
        includeMethods = true;
        includeEvents = true;
        includeFields = true;
        includeEnumValues = false;
    }
)

var md = dotNet.reflection.toMarkdown(data);
print(md); 
```

</p></details>

## dotNet.reflection 成员列表 <a id="dotNet.reflection" href="#dotNet.reflection">&#x23;</a>

.NET 程序集反射导出工具。  
可将 DLL/程序集导出为纯 aardio 表、JSON、Markdown。

### dotNet.reflection.export(assemblyOrPath,options) <a id="dotNet.reflection.export" href="#dotNet.reflection.export">&#x23;</a>
exportAssembly 的简写。

### dotNet.reflection.exportAssembly(assemblyOrPath,options) <a id="dotNet.reflection.exportAssembly" href="#dotNet.reflection.exportAssembly">&#x23;</a>
导出程序集信息与类型成员信息，返回纯 aardio 表。

### dotNet.reflection.exportType(typeOrName,assemblyOrOptions,options) <a id="dotNet.reflection.exportType" href="#dotNet.reflection.exportType">&#x23;</a>
导出单个 System.Type 信息。  
参数 @1 可指定 Type 对象；也可指定类型全名，并用参数 @2 指定程序集对象或 DLL 路径。

### dotNet.reflection.getTypes(assemblyOrPath,options) <a id="dotNet.reflection.getTypes" href="#dotNet.reflection.getTypes">&#x23;</a>
返回程序集中的 System.Type 对象数组。

### dotNet.reflection.loadAssembly(assemblyOrPath,options) <a id="dotNet.reflection.loadAssembly" href="#dotNet.reflection.loadAssembly">&#x23;</a>
加载并返回 .NET 程序集对象。  
参数 @1 可指定程序集短名称、DLL 路径、程序集对象、.NET 命名空间。  
options.loadFile 为 true 时改用 dotNet.loadFile。

### dotNet.reflection.saveJson(path,dataOrAssembly,options,pretty) <a id="dotNet.reflection.saveJson" href="#dotNet.reflection.saveJson">&#x23;</a>
导出并保存为 JSON 文件。  
如果参数 @2 已是 exportAssembly 返回的数据则直接保存。

### dotNet.reflection.saveMarkdown(path,dataOrAssembly,options) <a id="dotNet.reflection.saveMarkdown" href="#dotNet.reflection.saveMarkdown">&#x23;</a>
导出并保存为 Markdown 文件。

### dotNet.reflection.toJson(dataOrAssembly,options,pretty) <a id="dotNet.reflection.toJson" href="#dotNet.reflection.toJson">&#x23;</a>
导出为 JSON 。  
如果参数 @1 已是 exportAssembly 返回的数据则直接转换为 JSON。

### dotNet.reflection.toMarkdown(dataOrAssembly,options) <a id="dotNet.reflection.toMarkdown" href="#dotNet.reflection.toMarkdown">&#x23;</a>
将 exportAssembly 返回的数据或程序集对象转换为 Markdown 文本。
