主要内容

NET.addAssembly

将 .NET 程序集添加至 MATLAB

说明

asmInfo = NET.addAssembly(globalName) 加载一个基类库 (BCL) 或安装在全局程序集缓存 (GAC) 中的程序集(仅限 .NET Framework)。

示例

asmInfo = NET.addAssembly(privateName) 加载私有 .NET 程序集。

asmInfo = NET.addAssembly(___,Unloadable=tf) 允许您选择卸载私有 .NET Core 程序集。要卸载程序集,请在调用 NET.addAssembly 时将 Unloadable 参数设置为 true,然后调用 NET.unloadAssembly (自 R2026a 起)

您无法卸载 .NET Framework 程序集。如果您修改并重新编译 .NET Framework 程序集,必须重新启动 MATLAB® 才能访问更新后的代码。

示例

示例

全部折叠

显示 System.Windows.Forms 程序集中的类和枚举。

加载该程序集。

asm = NET.addAssembly("System.Windows.Forms")
asm = 

  NET.Assembly handle with properties:

    AssemblyHandle
    Classes
    Structures
    Enums
    GenericTypes
    Interfaces
    Delegates

显示该程序集中的类。

asm.Classes
ans =

  651×1 cell array

    {'System.Resources.ResXDataNode'                                                             }
    {'System.Resources.ResXFileRef'                                                              }
    {'System.Resources.ResXResourceReader'                                                       }
    {'System.Resources.ResXResourceSet'                                                          }
    {'System.Resources.ResXResourceWriter'                                                       }
    {'System.Windows.Forms.ToolStripTextBox'                                                     }
    ...

显示枚举。

asm.Enums
ans =

  229×1 cell array

    {'System.Windows.Forms.AccessibleEvents'                            }
    {'System.Windows.Forms.AccessibleNavigation'                        }
    {'System.Windows.Forms.AccessibleRole'                              }
    {'System.Windows.Forms.AccessibleSelection'                         }
    {'System.Windows.Forms.AccessibleStates'                            }
    {'System.Windows.Forms.AnchorStyles'                                }
    ...

首先,将全局程序集 System.Windows.Forms 加载到 MATLAB 中。然后,导入并调用全局程序集 System.Windows.Forms 中的 System.Windows.Forms.MessageBox.Show 方法。

asmInfo = NET.addAssembly("System.Windows.Forms");
import System.Windows.Forms.*
MessageBox.Show("Simple Message Box")

假设您有位于 C:\myPath\ 处的程序集 MyAssembly.dll,其中包含类 MyAssembly.MyClass

选择 .NET Core。

dotnetenv("core");

将一个程序集添加到 MATLAB 并启用卸载该程序集。

asm = NET.addAssembly("C:\path\to\MyAssembly.dll",Unloadable=true);

使用该程序集中的某个 API。

MyAssembly.MyClass.SomeStaticMethod;

从 MATLAB 卸载该程序集。

NET.unloadAssembly("MyAssembly");

输入参数

全部折叠

全局程序集名称,指定为字符串标量、字符向量或 System.Reflection.AssemblyName 对象。

包括完整路径的私有程序集名称,指定为字符串标量或字符向量。您必须指定私有程序集文件的完整路径。有关详细信息,请参阅Assembly Is a Library of .NET Classes

示例: "C:\Work\MyProject\MyAssembly.dll"

自 R2026a 起

程序集可卸载,指定为数值或逻辑值 0 (false) 或 1 (true)。当您将 Unloadable 设置为 true 时,该函数加载程序集以便可以卸载它。

仅私有 .NET Core 程序集支持将 Unloadable 设置为 true。

某些程序集由于编译方式而不支持卸载。对于这些程序集,请使用 Unloadable=false 调用 NET.addAssembly

示例: asm = NET.addAssembly("C:\path\to\MyAssembly.dll", Unloadable=true);

输出参量

全部折叠

包含程序集成员名称的程序集信息,以 NET.Assembly 对象形式返回。

限制

  • NET.addAssembly 不支持 MATLAB Compiler SDK™ 产品生成的程序集。

提示

  • 您无需调用 NET.addAssembly 即可访问 mscorlib.dllsystem.dll 程序集中的类。在您第一次键入“NET.”或“System.”时,MATLAB 会从 .NET 类库中动态加载这些程序集。

  • 请参阅 .NET 产品文档以了解程序集的名称及其部署类型(全局或私有)。

版本历史记录

在 R2009a 中推出

全部展开