上一页 | 下一页 |
技巧和陷阱
注意事项
项目 |
详情 |
也可以看看 |
---|---|---|
Visual Basic 5/6用户注意事项 |
Visual Basic 5/6用户应注意,Enterprise Architect界面的版本号以类似于下面的形式存储在VBP项目文件中: 参考= * \ G {64FB2BF4-9EFA-11D2-8307-C45586000000}#2.2#0#.. \ .. \ .. \ .. \ Program Files \ Sparx Systems \ EA \ EA.TLB #Enterprise Architect对象模型2.02 如果从一个版本的Enterprise Architect移动到另一个版本时遇到问题,请在文本编辑器中打开VBP文件并删除此行。然后在Visual Basic中打开项目并使用Project-References创建对Enterprise Architect对象模型的新引用。 |
|
加载项无法加载 |
从Enterprise Architect 7.0版开始,不再支持2004年之前创建的加载项。如果加载项订阅了Addn_Tmpl.tlb接口(2003样式),则加载失败。在这种情况下,请与加载项的供应商或作者联系并请求升级。 |
|
持有国家信息 |
加载项可以保存状态信息,这意味着数据可以存储在成员变量中以响应一个事件并在另一个事件中检索。这样做有一些危险:
建议除非有特定原因,否则加载项应使用repository参数及其方法和属性来提供必要的数据。 |
|
企业架构师没有关闭 |
.NET特定问题 自动化检查对象的使用,并且在不再使用它们之前不允许销毁任何对象。 如自动化接口主题中所述,如果您的自动化控制器是使用.NET框架编写的,那么即使您释放了对它的所有引用,Enterprise Architect也不会关闭。要强制释放COM指针,请调用内存管理功能,如下所示: 所以GC.Collect(); GC.WaitForPendingFinalizers(); 此外,由于自动化客户端连接到Enterprise Architect,后者创建了Add-Ins,而后者又重新连接到Enterprise Architect,因此可能会遇到陷入僵局的情况,即Enterprise Architect和Add-Ins不会放弃彼此并保持彼此活跃。加载项可能会保留到Enterprise Architect的挂钩,因为:
避免死锁情况需要两个操作:
您的自动化客户端可能控制Enterprise Architect的运行实例,其中加载项未遵守上述规则。在这种情况下,您可以调用Repository.Exit()来终止Enterprise Architect。
杂 在使用.NET框架开发外接程序时,必须在项目的属性中选择COM互操作性,以便将其识别为外接程序。 某些开发环境不会在创建时自动注册COM DLL。在Enterprise Architect识别加载项之前,您可能必须手动执行此操作。 您可以使用私有加载项密钥(按加载项部署的要求)来存储与加载项相关的配置信息。 |
自动化接口 保持状态信息 加载项事件 |
并发呼叫 |
在Enterprise Architect版本7.0中,如果加载项调用,Enterprise Architect可能会同时调用两个加载项方法:
在这种情况下,Enterprise Architect可以在第一次返回之前启动第二个Add-In方法(re-entrancy)。在7.0版中。和后续版本,Enterprise Architect无法进行此类并发调用。 如果正在开发加载项,请确保加载项用户正在运行Enterprise Architect 7.0版或更高版本,以避免任何并发方法调用的风险。 |