c# - .NET 6 中的 using 语句/指令在哪里
问题描述
我已经使用 Visual Studio 2022 Preview 启动并运行了几天。
第一次震惊,没有 Startup.cs。没关系,稍微阅读一下,我知道 Startup 已被删除。
今天又挨了一巴掌。我看不到 using 语句。这里是。
我刚刚创建了一个全新的 .NET 6 Web 应用程序,当我将鼠标悬停在 WebApplication 类上时,我意识到它保留在 Microsoft.AspNetCore.Builder 命名空间中。生成的 Program.cs 类看起来像这样。
那么using Microsoft.AspNetCore.Builder;
声明在哪里呢?
有什么魔力?为什么.net 一天比一天神秘?
完整的 Program.cs 文件如下。
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddRazorPages();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.MapRazorPages();
app.Run();
解决方案
C# 10.0 引入了一个名为global using 指令( global using <fully-qualified-namespace>;
) 的新功能,它允许指定要在编译中的所有文件中隐式导入的命名空间。.NET 6 RC1在新项目模板中默认启用此功能(请参阅<ImplicitUsings>enable</ImplicitUsings>
.csproj 中的属性)。
对于Microsoft.NET.Sdk.Web
下一个命名空间,应该隐式导入(加上来自 的命名空间Microsoft.NET.Sdk
):
- System.Net.Http.Json
- Microsoft.AspNetCore.Builder
- Microsoft.AspNetCore.Hosting
- Microsoft.AspNetCore.Http
- Microsoft.AspNetCore.Routing
- Microsoft.Extensions.Configuration
- Microsoft.Extensions.DependencyInjection
- Microsoft.Extensions.Hosting
- Microsoft.Extensions.Logging
UPD
要在评论中解决您的问题:
在编写包含默认导入的生成文件时,将位于obj
名为ProjectName.GlobalUsings.g.cs
.
要修改默认导入,您可以将Using
元素添加到.csproj
文件中。基于公开的属性,它允许执行多项操作,包括添加和删除:
<ItemGroup>
<Using Include="SomeFullyQualifiedNamespace"/>
</ItemGroup>
对于只是添加,您可以简单地在任何文件中为您的using
指令添加global
修饰符(或为此创建一个单独的):
global using SomeFullyQualifiedNamespace;
推荐阅读
- python - 当脚本在没有前面的 py -2 或 -3 的情况下运行时,Python argparse 失败
- google-sheets - 根据完全匹配的列值将数据从一个谷歌工作表的行/列导入另一个工作表
- angular - 输入列表的 Angular Dynamic [*ngModel)]
- java - 如何修复“使用独立于操作系统的路径‘META-INF/INDEX.LIST’找到多个文件”?
- c# - ASP.NET Web API 连接到 MySQL 数据库
- java - 如何使用 Java 使用 S3 对象 ARN 访问 S3 对象
- java - 在 MS 365 开发计划帐户中使用 disabledPlans 的 AssignedLicense
- jenkins - 如何在 jenkins maven 工作中禁止特定的 jar 版本?
- node.js - 如何在 PostgreSQL GEOMETRY 字段上创建空间索引?
- android - android studio颤振中未显示android项目结构