Eclipse rcp 如何在Eclipse4.3中使用ParameterizedCommand注入参数?

Eclipse rcp 如何在Eclipse4.3中使用ParameterizedCommand注入参数?,eclipse-rcp,e4,Eclipse Rcp,E4,我目前正在实现一个Eclipse4.3应用程序,并遇到了一个问题。我尝试将命令参数化以删除特定文件。我的方法与之相对应,但不知何故,我无法使其正常工作 在my Application.e4xmi中,我添加了一个带有参数的命令: <commands xmi:id="_K1MVgDGKEeOO8o2ChqdHMA" elementId="first.application.command.deleteproject" commandName="deleteProjectCommand">

我目前正在实现一个Eclipse4.3应用程序,并遇到了一个问题。我尝试将命令参数化以删除特定文件。我的方法与之相对应,但不知何故,我无法使其正常工作

在my Application.e4xmi中,我添加了一个带有参数的命令:

<commands xmi:id="_K1MVgDGKEeOO8o2ChqdHMA" elementId="first.application.command.deleteproject" commandName="deleteProjectCommand">
<parameters xmi:id="_Hr4FEDGTEeOO8o2ChqdHMA" elementId="cmd0" name="cmd0" typeId="" optional="false"/>
</commands>
一切正常,只有
文件
没有被注入,它保持为
null
。在执行前检查
pcmd
变量时,它告诉我它已将参数正确设置为
{cmd0=test}
(使用
System.out.println(pcmd.getParameterMap());
)。当我删除
@Optional
时,根本不调用execute方法

参数
cmd0
在某个地方丢失。我的代码中的错误在哪里


谢谢

刚刚找到了解决办法。使用
pcmd.executeWithChecks执行(null,null)似乎无法按预期工作。相反,我们需要注入的
EHandlerService

@Inject
private EHandlerService handlerService;
现在我们使用如下服务执行命令:

handlerService.executeHandler(pcmd);

我希望这也能帮助一些人

@Inject
private EHandlerService handlerService;
handlerService.executeHandler(pcmd);