全局使用和 .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>
您可以使用一些关键字 - 例如 Alias
或 Static
- 就像您在普通 .cs 文件中所做的那样。
<ItemGroup>
<Using Include="Test.Namespace" Alias="Domain" />
</ItemGroup>
然后在您的代码中,您可以执行以下操作:
namespace Test.Namespace
{
public class TestClass {}
}
namespace Another.Namespace
{
new Domain.TestClass();
}
如果有帮助,我在下面blog post.
中找到了此信息
我最近认识到,我也可以在 .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>
您可以使用一些关键字 - 例如 Alias
或 Static
- 就像您在普通 .cs 文件中所做的那样。
<ItemGroup>
<Using Include="Test.Namespace" Alias="Domain" />
</ItemGroup>
然后在您的代码中,您可以执行以下操作:
namespace Test.Namespace
{
public class TestClass {}
}
namespace Another.Namespace
{
new Domain.TestClass();
}
如果有帮助,我在下面blog post.
中找到了此信息