0

我想编写一个Action只调用ContextAction. 这可能吗?AContextAction将 aSolution作为参数,并且 anAction得到 a DataContexton 构造。所以问题真的变成了:

Solution能从 的实例中获取电流DataContext吗?

编辑:哎呀!我问错了。以上是真的,但不是真正的问题。就像下面的德米特里所说,你确实可以得到这样的解决方案:

var solution = 
  dataContext.GetData(JetBrains.ProjectModel.DataContext.DataConstants.SOLUTION);

棘手的一点是获取_psiModule,它可以从构造ICSharpContextDataProvider时传入的 获取,通过。你能从 中得到一个或正确的吗?ContextActionprovider.PsiModuleICSharpContextDataProviderPsiModuleDataContext

4

2 回答 2

2
  var document = context.GetData(DocumentModel.DataConstants.DOCUMENT);
  var solution = context.GetData(JetBrains.ProjectModel.DataContext.DataConstants.SOLUTION);
  var psiModule = document.GetPsiSourceFile(solution).GetPsiModule();
于 2012-07-14T07:33:27.680 回答
1

您可以尝试像这样获得解决方案:

var solution =
  dataContext.GetData(JetBrains.ProjectModel.DataContext.DataConstants.SOLUTION)
于 2012-07-13T20:31:29.053 回答