如何通过编程方式删除eclipse中的扩展名

时间:2018-01-24 10:34:02

标签: eclipse eclipse-plugin eclipse-rcp

我创建了一个扩展点,我试图在其他插件中实现该扩展。在某段时间后,我需要在运行时删除该扩展。所以当前我正在使用下面的代码(反思调用)

我的代码在这里:

IExtensionRegistry reg = Platform.getExtensionRegistry();
Field privateStringField = ExtensionRegistry.class.getDeclaredField("masterToken"); //$NON-NLS-1$
privateStringField.setAccessible(true);
Object masterToken = privateStringField.get(reg);
IConfigurationElement[] config = reg.getConfigurationElementsFor("com.temp.rcp.product");
for (IConfigurationElement configElement : config) {
    if (configElement.getAttribute("name").equals("Temp")) {
        reg.removeExtension(configElement.getDeclaringExtension(), masterToken);
    }
}

我查看了代码并找到了一个解决方案,但这是完全不可接受的,因为当我更新我的eclipse目标平台时,由于反射调用,它可能/将会中断。

你们中的任何人都可以帮助我解决上述问题。

0 个答案:

没有答案