全局使用和 .NET Standard 2.0

global usings and .NET Standard 2.0

我最近认识到,我也可以在 .NET Standard 2.0 项目中使用 C# 10 功能 文件范围的命名空间,方法是在 [=11] 中设置 <LangVersion>10</LangVersion> =] 文件.

但是,global usings 不是那样工作的,由于缺少 using 语句,我遇到了编译器错误。

是否有任何调整以便我也可以在 .NET Standard 2.0 库中使用 global usings

我不确定为什么它不适用于单独的 .cs 文件。但是,一种可行的解决方法是使用 MSBuild 语法。在您的 .csproj 中,您可以添加以下内容:

  <ItemGroup>
    <Using Include="System.Linq" />
  </ItemGroup>

您可以使用一些关键字 - 例如 AliasStatic - 就像您在普通 .cs 文件中所做的那样。

  <ItemGroup>
    <Using Include="Test.Namespace" Alias="Domain" />
  </ItemGroup>

然后在您的代码中,您可以执行以下操作:

namespace Test.Namespace 
{
    public class TestClass {}
}

namespace Another.Namespace
{
    new Domain.TestClass();
}

如果有帮助,我在下面blog post.

中找到了此信息