全局使用和 .NET Standard 2.0

发布于 2025-01-10 15:20:09 字数 273 浏览 0 评论 0原文

我最近认识到,我还可以通过在 .NET Standard 2.0 项目中设置 10/LangVersion> 来使用 C# 10 功能文件范围的命名空间 csproj 文件。

但是,全局 using 无法以这种方式工作,由于缺少 using 语句,我收到了编译器错误。

是否有任何调整,以便我也可以在 .NET Standard 2.0 库中使用全局使用?

I recently recognized that I can use the C# 10 feature file-scoped namespaces in .NET Standard 2.0 projects as well by setting <LangVersion>10</LangVersion> in the csproj file.

However, global usings don't work that way, I'm getting compiler errors due to missing using statements.

Are there any tweaks so that I can use global usings in a .NET Standard 2.0 library as well?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一直在等你来 2025-01-17 15:20:09

我不确定为什么它不适用于单独的 .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();
}

如果有帮助,我在以下内容中找到了此信息 博客文章

I'm not sure why it doesn't work with a separated .cs file. However, a workaround that works is using the MSBuild syntax. In your .csproj you can add the following:

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

There are some keywords you can use - like Alias or Static -, as you would do in a normal .cs file.

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

And then in your code, you can do the following:

namespace Test.Namespace 
{
    public class TestClass {}
}

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

If it helps, I found this information in the following blog post.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文