【发布时间】:2023-03-09 18:23:01
【问题描述】:
我们使用 Unity 2.0 已经有一段时间了,我们有这样的代码,它在最简单的情况下使用了 Unity。它编译并运行良好。
var container = new UnityContainer();
container.RegisterType<IMyInterface, MyImplementation>();
var myImp = container.Resolve<IMyInterface>();
myImp.DoStuff();
最近,随着开发人员从 Nuget 中撤下 Unity,他们改为使用 3.0。相同的代码编译并运行。它在 VS2012 错误列表中没有显示任何内容,但代码高亮显示错误“方法 'X' 没有类型参数。”
我恢复到 Unity 2.0 参考,但它消失了。然后我切换回 3.0,它一直消失,直到我关闭并重新打开解决方案。现在它又回来了。
Intellisense 不会拉出任何带有此错误的 MyImplementation 方法。
【问题讨论】:
-
你在使用 Resharper 吗?如果是这样,请尝试将其关闭并查看错误是否消失 - 可能是它缓存了一些旧数据。
-
伟大的想法@JonSkeet。当我暂停 Resharper 时,它会立即消失,而 VS intellisense 会采用这些方法。现在来弄清楚 Resharper 是怎么回事。
-
尝试清除缓存 - 我不记得该选项在哪里,但我认为它在设置中的某个地方......
-
是的...在 Resharper -> 选项 -> 常规下找到了清除缓存按钮。非常感谢!
标签: c# visual-studio-2012 resharper unity-container intellisense