【发布时间】:2015-03-07 09:57:03
【问题描述】:
我正在尝试将 R# 扩展项目从 R# 6 迁移到 R# 8。(我接手了某人编写的项目,而且我是编写扩展的新手。)
在现有的 v6 项目中,有一个派生自 RenameWorkflow 的类,构造函数曾经看起来像这样;
public class RenameStepWorkflow : RenameWorkflow
{
public RenameStepWorkflow(ISolution Solution, string ActionId)
: base(Solution, ActionId)
{
}
这曾经在 R# SDK v 6 中工作,但现在在 V8 中,RenameWorkflow 不再具有采用 Solution 和 actionId 的构造函数。新的构造函数签名现在看起来像这样;
public RenameWorkflow(
IShellLocks locks,
SearchDomainFactory searchDomainFactory,
RenameRefactoringService renameRefactoringService,
ISolution solution,
string actionId);
现在这是我需要帮助的问题(我认为)
我已经复制了构造函数,现在这个类的构造函数必须满足这些新的依赖关系。通过一些挖掘,我设法找到了满足所有依赖项的方法,除了 'SearchDomainFactory'。我可以通过更新的构造函数来实例化的最接近如下;
新的 RenameStepWorkflow(Solution.Locks, JetBrains.ReSharper.Psi.Search.SearchDomainFactory.Instance, RenameRefactoringService.Instance, this.Solution, null)
一切看起来都不错,除了 JetBrains.ReSharper.Psi.Search.SearchDomainFactory.Instance 被标记为过时,并且给了我一个无法解决的编译错误,即使使用 #pragma 也不允许我编译代码。我编译时得到的确切错误消息是Error 16 'JetBrains.ReSharper.Psi.Search.SearchDomainFactory.Instance' is obsolete: 'Inject me!'
很明显的下一个问题..好的,怎么样?我如何“注入你”?我找不到关于这个新的重大更改的任何文档,事实上,我找不到任何文档(或示例项目)甚至提到 DrivenRefactoringWorkflow 或 RenameWorkflow,(现在需要新 SearchDomainFactory 的类),或任何关于SearchDomainFactory.Instance 现在突然过时了,如何满足“注入”它的需要。
任何帮助将不胜感激!谢谢你,
问候
艾伦
【问题讨论】:
标签: resharper resharper-plugins resharper-sdk