我正在ASP.NET核心MVC应用程序中编写一些测试代码。在默认的Startup.cs
中,它使用MVC,如下所示:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
app.UseMvc(routes => { /* ... */ });
}
检查source code我们可以看到.UseMvc
是[{1}}的扩展方法。
现在我想为此项目添加swagger支持。现在有pre-release version,我添加了引用,现在我可以使用:
IApplicationBuilder
但是等等!在使用public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
app.UseMvc(routes => { /* ... */ });
app.UseSwagger(...);
}
之前,我没有添加任何using
语句!然后我发现了棘手的事情:在引用的swagger库中,它们有一个名为.UseSwagger
的命名空间,Microsoft.AspNetCore.Builder
属于(在另一个库中),所以这个命名空间绝对是“使用”{{1} 1}}。
我承认这是一种聪明的方式,用户不会浪费时间寻找扩展方法的命名空间(即使现在VS2015可以检测扩展方法的命名空间,但想象其他IDE,例如VS CODE)。但是在IApplicationBuilder
中添加完全不相关的命名空间Startup.cs
是否有风险?