VS2017中的自动完成功能建议我完全合格使用using语句。我有两个具有以下(简化)结构的项目:
Company.Contracts
IMyExample.cs
Company.Core
MyExample.cs
现在当我在IMyExample
类中使用MyExample
时,VS2017建议我使用using语句,例如
using Company.Contracts
但是我认为有一段时间VS2017建议我:
using Contracts
这足以使项目共享相同的主命名空间。
我如何配置VS2017,以便它更喜欢简化名称空间而不是完全限定的名称空间?实际上,这与StyleCop Rule SA1135相反。
提示:我之前使用的是VS2019,但由于测试许可证已终止并且我非常确定,我不必更正using语句,因此切换回VS2017。也许在VS2019中这可能吗?
也许在VS2019中可以吗?
[抱歉,答案可能是否定的,我在VS2019版本16.3.4中进行了测试,并确认目前不支持此行为。
根据您的情况,也可以使用full qualified names之类的格式来代替Contracts.ClassName
。
并且由于在这种情况下首选全限定名称空间的原因,假设您当前的项目Company.Core
引用了一个程序集,该程序集的根名称空间也命名为Contracts
,现在,如果VS执行您建议的操作,则添加using Contracts
当您使用Company.Contracts
项目中的函数时,智能感知将对此感到困惑。参见:
[在那种情况下,您的VS intellisense可能对using Contracts
的真正含义感到困惑,另一个程序集的根命名空间是Contracts
或Company.Contracts
项目?因此,我认为这可能是为什么它建议使用完全合格的命名空间的可能原因之一。
并且如果您确实需要一个支持此行为的选项,我建议您可以发送功能请求here。如果此请求获得足够的选票,团队将考虑此请求。
希望我的回答会有所帮助:)