EaBIM一直以来积极响应国家“十二五”推进建筑业信息化的号召,对建筑领域的信息技术开展深入技术交流和探讨!致力于打造“BIM-建筑师-生态技术”三位一体综合资源交流共享平台,希望为BIM与可持续设计理念及技术的普及做出微小的贡献!!!

萧闫子 发表于 2014-1-8 14:43:57

[资料] 在AutoCAD中程序化加载.NET程序集的方法



用.NET程序加载.NET程序集,用到了微软的核心类库mscorlib中的System.Reflection命令空间。加载时只要一个函数Assembly.LoadFrom()可以了,试了下速度还是很快地。下面转一下Kean的测试代码(C#):   1 using Autodesk.AutoCAD.ApplicationServices;
    2 using Autodesk.AutoCAD.EditorInput;
    3 using Autodesk.AutoCAD.Runtime;
    4 using System.Reflection;
    5 namespace LoadModule
    6 {
    7   public class Commands
    8   {
    9         
   10         static public void MyNetLoad()
   11         {
   12             Document doc =
   13               Application.DocumentManager.MdiActiveDocument;
   14             Editor ed = doc.Editor;
   15             PromptStringOptions pso =
   16               new PromptStringOptions(
   17               "\n输入要加载的程序集全路径: "
   18               );
   19             pso.AllowSpaces = true;
   20             PromptResult pr = ed.GetString(pso);
   21             if (pr.Status != PromptStatus.OK)
   22               return;
   23             try
   24             {
   25               Assembly.LoadFrom(pr.StringResult);
   26             }
   27             catch (System.Exception ex)
   28             {
   29               ed.WriteMessage(
   30                   "\n无法加载程序集{0}: {1}",
   31                   pr.StringResult,
   32                   ex.Message
   33               );
   34             }
   35         }
   36   }
   37 }此方法给用户随时后台(不知不觉地)加载.NET程序集提供了一种可能,美中不足的是托管的程序集目前只能加载无法卸载,一次加载终身受用,直到你关闭AutoCAD为至,呵呵。

  Lisp也可以实现相似的功能,下一篇做详细介绍...
转自:http://www.lubanren.com/weblog/post/209.html

页: [1]
查看完整版本: [资料] 在AutoCAD中程序化加载.NET程序集的方法