Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio Visual Studio、ASP.NET 5和IApplicationBuilder界面_Visual Studio_Visual Studio 2015_Asp.net Core - Fatal编程技术网

Visual studio Visual Studio、ASP.NET 5和IApplicationBuilder界面

Visual studio Visual Studio、ASP.NET 5和IApplicationBuilder界面,visual-studio,visual-studio-2015,asp.net-core,Visual Studio,Visual Studio 2015,Asp.net Core,在开发ASP.NET 5应用程序时,我经常遇到不知道IAApplicationBuilder界面上可用的扩展方法名称的麻烦 (这听起来可能很愚蠢)。我在我的Startup.cs文件中,我想添加MVC。我只找到了(假设我的IApplicationBuilder实例名为app)app.UseMvcCore()。我真正想要的是app.UseMvc()。它们是(或曾经是)不同的包装。这是一个相当愚蠢的例子,但你明白了。如果我不知道名为app.runiispeline()的扩展方法,我怎么知道它是可用的?

在开发ASP.NET 5应用程序时,我经常遇到不知道IAApplicationBuilder界面上可用的扩展方法名称的麻烦

(这听起来可能很愚蠢)。我在我的
Startup.cs
文件中,我想添加MVC。我只找到了(假设我的IApplicationBuilder实例名为
app
app.UseMvcCore()。我真正想要的是app.UseMvc()。它们是(或曾经是)不同的包装。这是一个相当愚蠢的例子,但你明白了。如果我不知道名为
app.runiispeline()的扩展方法,我怎么知道它是可用的?我认为这应该在智能意义上表现出来


除了已安装的软件包外,为什么Visual Studio不就配置的NuGet提要中的软件包的可用扩展方法提供建议?

我同意,当您的计算机已经安装了所有软件包时,与ASP.NET的早期(封闭源代码)版本相比,这有点困难,尤其是使用dnxcore50

对于未安装的软件包,很难在intellisense中显示这一点,考虑到nuget上有多少软件包,并且考虑到命名冲突的可能性,nuget如何仅通过该软件包中的(部分)方法名确定您想要哪个软件包

解决方法是快速查看您想要在github上使用的包。例如,如果您知道要添加
Microsoft.Aspnet.Mvc
,请转到,点击T,然后键入
extensions
,甚至更好的是,
applicationbuilderextensions
。然后您将看到已定义的扩展

更新

您还可以在存储库的文件中搜索出现的
此IApplicationBuilder
,以使用github存储库的搜索框中的以下搜索字符串查找扩展方法

"this IApplicationBuilder" in:file

.

我想您可以将密钥确定为NuGet package ID+方法名,但我同意,会有很多建议。感谢GitHub示例。这真的很有帮助。然而,如果我们不知道扩展是在哪里定义的(换句话说:在什么包中),那么我们就陷入了同样的问题。我想我需要在
applicationbuilderextensions
之后始终搜索在GitHub找到的包。顺便问一下,这是命名约定吗?编写库的开发人员可以根据需要给它取另一个名称,因为这只是一种扩展方法?Nuget只提供您指定的包—它不能帮助您确定特定函数需要哪个包。开发人员可以随意调用扩展方法。在[Identity](github.com/aspnet/Identity)中,它被称为-这可能是我见过的更常见的名称。文档是这里的关键——它可以帮助你找到(谷歌)你需要的软件包,以及如何配置它。因为ASP.NET是如此的新,文档是有限的。是的,似乎每个人都给它们起了不同的名字。如果能够在GitHub上搜索源代码文件,那就太好了。然后您可以搜索
这个IAppBuilder
。至少这会指出他们在哪里!