【发布时间】:2016-12-02 23:50:37
【问题描述】:
我正在尝试注入一些我的向导的字段。
我可以使用以下帮助类成功地注入我自己的 OSGi DS:
public class UtilRCP {
public static void inject(Plugin plugin, Object object) {
IEclipseContext serviceContext = EclipseContextFactory.getServiceContext(plugin.getBundle().getBundleContext());
ContextInjectionFactory.inject(object, serviceContext);
}
}
未能注入来自 RCP 生态系统的其他服务,例如 PartService 或 MApplication(null / 未找到参数“MApplication”的实际值)。
这里是代码
public class MyWizard extends MyAbstractWizard implements IImportWizard {
private MyWizardPage page;
@Inject
private EPartService partService;
@Inject
private DatabaseProvider databaseProvider;
@Inject
private MApplication application;
public MyWizard() {
System.err.println("Create");
System.err.println(databaseProvider);
System.err.println(partService);
System.err.println(application);
}
@Override
public void init(IWorkbench workbench, IStructuredSelection selection) {
UtilRCP.inject(Activator.getDefault(), this);
System.err.println("Init");
System.err.println(databaseProvider);
System.err.println(partService);
System.err.println(application);
}
@Override
public void addPages() {
super.addPages();
page = new MyWizardPage();
addPage(page);
}
@Override
public boolean performFinish() {
return true;
}
}
【问题讨论】:
标签: eclipse dependency-injection eclipse-rcp