我最近在我的项目中添加了新的NuGet包(和引用),但是当我开始输入我的代码时,VS将不会自动完成,甚至不会为我提供现在应该可用的类。所以,如果我想从新添加的包中引用一些类,我必须手动输入'using NewlyAddedPackage ...'。这很烦人,我无法继续这样的工作。任何建议为什么会发生这种情况,我该如何解决?
要清楚,我为FluentNHibernate安装了NuGet包,当我尝试编写如下代码时:
namespace ConsoleApp1
{
public class Customer
{
public virtual string Name { get; set; }
}
public class CustomerMap : ClassMap<Customer>
{
...
}
}
当我开始输入ClassMap时... autocomplete将不会从FluentNHibernate.Mapping命名空间提供ClassMap。 NuGet包已正确安装在项目中,我可以在Project&gt; Refferences列表中看到它。请帮忙。
答案 0 :(得分:2)
完成列表是Visual C# IntelliSense功能的一部分,它运行正常,并不完全符合您的预期。
当前文件中没有using
指令,完成列表为您提供global
命名空间中声明的所有内容。您可以使用完全限定名称global::FluentNHibernate.Mapping.ClassMap
访问新添加的类型,该名称大多数时间与FluentNHibernate.Mapping.ClassMap
相同。有关例外,请参阅MSDN上的Use the Global Namespace Alias文章。为了简化操作using
指令通常用于从某个命名空间导入类型,因此您不必完全限定该类型的名称。 Visual Studio不会自动添加using
指令。您必须手动添加它们或使用Visual Studio的Quick Actions功能(灯泡,默认组合键是 CTRL + 。):