# System.Dynamic 库模块帮助文档

<details>  <summary>说明</summary>  <p>

## 简介

aardio 对象在 .NET 中可直接用于 dynamic 类型。
C# 里只要将 aardio 对象声明为 dynamic 类型就可以自由调用。

## 关于 System.Dynamic.ExpandoObject

如果使用 .NET 的 System.Dynamic.ExpandoObject 创建 dynamic 对象，
这种对象传回 aardio 时被谨慎的封包为 DispatchableObject 对象（.NET 对象）,
然后再次封装为 aardio 中的 dotNet.object 对象。

但实际上在 aardio 中应当使用  
`dotNet.getObject(expandoObject,true/*允许解包 DispatchableObject*/)`
将 System.Dynamic.ExpandoObject  对象（参数 expandoObject）解包为原生 COM 对象。
aardio 可以直接操作  COM 对象，反而是通过 .NET 接口操作这种 expandoObject 很麻烦。

如果是在 aardio 中创建 System.Dynamic.ExpandoObject 对象，
**请务必先导入 aardio 标准库 System.Dynamic**，这个库已经扩展了 System.Dynamic.ExpandoObject 
可自动解包返回的 System.Dynamic.ExpandoObject 为 COM 对象。
</p></details>

## System.Dynamic 成员列表 <a id="System.Dynamic" href="#System.Dynamic">&#x23;</a>

.NET 的 System.Dynamic  命名空间。  
Win10 已自带.NET 4.6 以上，NET 4.x 以上支持 System.Dynamic（dynamic）对象。   
C# 里只要将 aardio 对象声明为 dynamic 类型就可以自由调用。

### System.Dynamic.* <a id="System.Dynamic.any" href="#System.Dynamic.any">&#x23;</a>
.NET 命名空间、类、结构体的成员，  
可访问成员命名空间、类、枚举、静态属性或字段，  
导入的类可用于构造 .Net 对象，传回 .Net 则自动转为该类的 Type 对象  

[返回对象:dotNetNameSpaceObject](https://www.aardio.com/zh-cn/doc/library-reference/dotNet/appDomain.html#dotNetNameSpaceObject)

### System.Dynamic.ExpandoObject(表对象) <a id="System.Dynamic.ExpandoObject" href="#System.Dynamic.ExpandoObject">&#x23;</a>
创建 System.Dynamic.ExpandoObject 对象。  
可选在参数中指定 aardio 表对象用于自定义初始化数据。  

请务必自 aardio 标准库先导入 System.Dynamic 。  
标准库中的 System.Dynamic.ExpandoObject 构造的对象已自动解包为 COM 对象。  
System.Dynamic.ExpandoObject 实际是 COM 对象，转为 COM 对象操作更方便。  
详细说明请参考标准库 System.Dynamic 文档。

## System.Dynamic.ExpandoObject 成员列表 <a id="System.Dynamic.ExpandoObject" href="#System.Dynamic.ExpandoObject">&#x23;</a>

### System.Dynamic.ExpandoObject.ObservableCollection <a id="System.Dynamic.ExpandoObject.ObservableCollection" href="#System.Dynamic.ExpandoObject.ObservableCollection">&#x23;</a>
实例化的泛型类：  
`System.Collections.ObjectModel.$ObservableCollection(System.Dynamic.ExpandoObject)`
