//aardio 内存加载 .NET 程序集(DLL) import console.int; import dotNet; /* 在『虚拟程序集引用表』注册一个或多个虚拟程序集, 这些虚拟程序集可以是内存程序集、本地程序集、EXE 内嵌资源中的程序集。 aardio 加载的 .NET 程序找不到程序集(DLL)时, 会查找『虚拟程序集引用表』并加载已注册的虚拟 DLL 可用『 aardio 工具 » 转找工具 » .NET 引用表转换 』自动生成下面的代码。 */ dotNet.reference({ //「键」为程序集短名称( DLL 文件名 )。 //「值」为程序集内存数据或文件路径(支持内嵌资源路径),也可以是一个返回所需值的函数。 //虚拟 CSNET2ClassLibrary.dll "CSNET2ClassLibrary" = $"\CSNET2ClassLibrary.dll"; //虚拟 A.B.C.dll "A.B.C" = $"\CSNET2ClassLibrary.dll"; }) //加载上面的虚拟程序集(也可以利用上面的方法添加依赖 DLL )。 var assembly = dotNet.load("CSNET2ClassLibrary"); //可以直接在参数 @2 里写 DLL 内存数据或文件路径(自动调用 dotNet.reference)。 var assembly = dotNet.load("CSNET2ClassLibrary",$"\CSNET2ClassLibrary.dll"); //导入程序集中的命名空间或类。 //.NET 命名空间或类名建议首字符大写,aardio 类名建议首字符小写。 assembly.import("CSNET2ClassLibrary"); //调用 .NET 类的静态成员函数 var len = CSNET2ClassLibrary.CSSimpleObject.GetStringLength("HelloWorld"); console.log( len ); //用 CSNET2ClassLibrary 命名空间下面的类构造对象实例,对象实例建议首字符小写。 var simpleObject = CSNET2ClassLibrary.CSSimpleObject() //获取 .NET 对象的属性值 console.log( simpleObject.FloatProperty ); /* 也可以用 dotNet.loadFile() 函数自内存加载单个 DLL 文件, 但是 dotNet.loadFile() 并不支持 『虚拟程序集引用表』,无法添加依赖 DLL。 */