NET API的初始化与清除
在ObjectARX中,"acrxEntryPoint"函数是ARX程序的载入点,程序的初始化和清除均可在该函数中进行。而在.NET API中则首先需要将初始化代码封装在一个类中,同时该类需要压迫实现
IExtensionApplication接口。该接口包含Initialize与Terminate两个函数。其中Initialize负责加载程序时的初始化操作,Terminate则负责进行卸载程序时的清除操作。代码如下:
namespace ARXExample {
public class MyARX : IExtensionApplication {
……
public void Initialize() {
//初始化操作
}
public void Terminate() {
//清除操作
}
……
}
}
同时,为加快加载速度,可在MyARX.cs的文件头加入以下语句:
[assembly: ExtensionApplication (typeof (ARXExample.MyARX) ) ]
[assembly: CommandClass (typeof (ARXExample.MyARX) ) ]
这样在加载程序时AutoCAD将直接通过MyARX中的Initialize语句进行初始化,同时注册MyARX中的命令。否则,AutoCAD将搜索dll中所有的类以找到实现IExtensionApplication接口的类进行初始化,如找不到则不进行初始化。同样,通过CommandClass属性,AutoCAD也会直接到MyARX类中搜索要注册的命令。当程序中包含的类数目较多时,通过ExtensionApplication和CommandClass这两个属性可显著地加快程序的加载速度。