cad提供的 IExtensionApplication 接口 是不能实现一次以上的,那么这给编写代码带来了一种不好的情况是,每次都要去修改实现这个接口的类,
如果是一个小的测试功能,你又要去动前面的核心,这样就感觉很蛋疼....编程思维上面叫做"开闭原则":对拓展进行开放,对修改进行关闭.
所以我是这么想的,在实现IExtensionApplication接口的 Initialize 和 Terminate 时候,
用反射来找到某个接口(仿IExtensionApplication接口的),然后搜下面接口的 Initialize 和 Terminate,然后运行这个它.
仿IExtensionApplication接口的接口.
public interface IAutoGo { //打开cad的时候会自动执行 void Initialize(); //关闭cad的时候会自动执行 void Terminate(); }
继承 IExtensionApplication 接口的函数,cad加载这个dll,就会运行它.
public partial class AutoJJBox : IExtensionApplication { //为了解决IExtensionApplication在一个dll内无法多次实现接口的关系 //所以在这里反射加载所有的IAutoGo,以达到能分开写"启动运行"函数的目的 //打