托管应用程序可以选择通过实现可选接口来执行初始化或终止任务。Autodesk.AutoCAD.Runtime.IExtensionApplication 该接口提供与方法。由于无法手动卸载托管应用程序,因此在 AutoCAD 程序关闭时将调用该方法的任何实现。Autodesk.AutoCAD.Runtime.IExtensionApplicationInitialize()Terminate()Terminate() 如果应用程序定义了大量数据类型,则可以通过实现和使用两个可选的自定义属性来优化其加载时间性能。这些属性(和)可帮助 AutoCAD 程序查找应用程序的初始化例程和命令处理程序。IExtensionApplicationExtensionApplicationCommandClass 任何托管应用程序都可以使用这些属性。但是,它们的优化效果只能在较大的应用中测量。 使用扩展应用程序和命令类属性当 AutoCAD 程序加载托管应用程序时,它会查询应用程序的程序集以获取属性。如果找到此属性,AutoCAD 程序会将属性的关联类型设置为应用程序的入口点。如果未找到此类属性,AutoCAD 将搜索所有导出的类型以进行实施。如果未找到实现,AutoCAD 程序将跳过特定于应用程序的初始化步骤。ExtensionApplicationIExtensionApplication 该属性只能附加到一种类型。它附加到的类型必须实现接口。ExtensionApplicationIExtensionApplication 除了在应用程序中搜索实现之外,AutoCAD 程序还会查询应用程序的程序集以获取一个或多个属性。如果找到此属性的实例,AutoCAD 程序将仅搜索其关联的类型以查找命令方法。否则,它将搜索所有导出的类型。IExtensionApplicationCommandClass 可以为定义 AutoCAD 命令处理程序的任何类型声明属性。如果应用程序使用该属性,则必须为包含 AutoCAD 命令处理程序方法的每个类型声明此属性的实例。CommandClassCommandClass 以下过程介绍如何使用这些属性。
注意:必须在程序集上下文中声明这些属性。
VB.NET... Imports Autodesk.AutoCAD.Runtime Imports Autodesk.AutoCAD.Interop Imports Autodesk.AutoCAD.ApplicationServices Imports Autodesk.AutoCAD.DatabaseServices <Assembly: ExtensionApplication(GetType(HelloWorld.HelloWorldApp))> <Assembly: CommandClass(GetType(HelloWorldCommands))> Namespace HelloWorld Public Class HelloWorldApp Implements Autodesk.AutoCAD.Runtime.IExtensionApplication ... End Class Public Class HelloWorldCommands ' Defines a command that prompts a message on the AutoCAD ' command line. <Autodesk.AutoCAD.Runtime.CommandMethod("HELLO")> Public Sub HelloCommand() ... End Sub End Class End Namespace C#... using Autodesk.AutoCAD.Runtime; using Autodesk.AutoCAD.Interop; using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.DatabaseServices; [assembly: ExtensionApplication(typeof(HelloWorld.HelloWorldApp))] [assembly: CommandClass(typeof(HelloWorld.HelloWorldCommands))] namespace HelloWorld { public class HelloWorldApp : Autodesk.AutoCAD.Runtime.IExtensionApplication { ... } public class HelloWorldCommands { // Defines a command that prompts a message on the AutoCAD // command line. [CommandMethod("HELLO")] public void HelloCommand() { ... } } } |
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )
GMT+8, 2024-5-6 21:17
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.