AutoCAD .NET8+ 短脚本宿主。复用 com.cad.task,不依赖Autos、不新建IPC,不是沙箱或完整热卸载机制。
创建但不提交C#任务,显式传入原增强cad并绑定doc;不从doc.Application重取宿主。source为完整C#源码或.cs文件,args为JSON数据。
成功返回任务对象,先保存path再submit;失败null,err。
固定入口:public static object Script.Execute(Document doc, Database db, Editor ed, Transaction tr, JsonElement args)。
options沿用任务timeout/method/directory/nudge;另有hostDirectory/sdkOptions。
首次宿主加载与NetLoad共用内部实现,CAD提示由用户处理;完成加载与设置恢复后才执行脚本。
重开原C#任务,read/wait解析脚本回执;省略doc可离线读取,不准备SDK或重新提交。
编译或复用小型常驻宿主,返回host,err,info;不会NETLOAD或修改信任设置。
options可指定hostDirectory、sdkOptions。内部按实际CAD运行时选择Roslyn,缓存键包含源码/CAD引用/编译器版本。
通常由run/create自动调用。
创建、单次提交并等待,返回result,err,task。
检查result.ok;编译/入口/运行/结果编码错误由phase区分。
timeout为等待快照,不取消或重发;task.path可用open恢复。
编译失败无执行;宿主事务在结果编码成功后提交,异常时释放未提交事务。不得在脚本中自行Commit/Dispose宿主事务或切换文档。
不承诺任意副作用回滚、强行停止代码或ALC必然回收。
经同一任务入口读取宿主运行时、引用数、ALC弱引用及内存快照。
返回result,err,task;数据在result.data。collect默认false;true诊断性触发全局GC,可能暂停CAD,不用于日常每次调用。
alive仅为当时尚存活的上下文数,不代表已定位GC根或泄漏内存大小。
沿用执行前取消。不能停止已经开始执行的C#。
固定宿主构建身份,不是每次业务程序集名。
底层LISP任务ID。
显式沿用任务队列刷新;可能阻塞,默认不调用。
C#任务回执目录,应在submit前保存。
读取并解码C#结果,返回result,err;不访问CAD。result.ok表示传输及C#均成功。
UTF-8 JSON源码/参数请求文件;提交后不可修改,宿主验证SHA256。
委托现有任务协议,最多提交一次;重开任务需传入原doc。超时不重放。
原文档与CAD实例身份快照。
等待并解码C#回执;0只读快照。超时不会中断代码/撤销加载/回滚。