命名空间技巧,以避免更多的命名空间

时间:2016-08-24 08:07:12

标签: c# .net asp.net-core swagger

我正在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是否有风险?

0 个答案:

没有答案