gpt4 book ai didi

c# - 在 C# 中使用 CrossProject 全局

转载 作者:行者123 更新时间:2023-12-05 01:54:53 25 4
gpt4 key购买 nike

既然 C#10 已经到位,我正在重构我的一些代码。我注意到引用文献的数量是疯狂的。出于这个原因,我想使用 global usings 将每个项目共享的所有内容重构为一个“共享的”,但它没有按预期工作。

只是为了“最小”的例子。

我有一个配置 API 配置(中间件等)的类库。然后我还有其他几个图书馆。

这里的关键是我想要一个名为“setup”的库,它引用所有其他库,并使用“global usings”,能够在包含所有域逻辑的 web 应用程序中导入该库

但是,当我在新的 setup 项目中使用 global using Shared.API.xxx 创建文件时,似乎什么也没做。

我还在 web 应用程序中导入了 setup 项目来执行下一步:

  <ItemGroup>
<Using Include="Shared.Setup" />
</ItemGroup>

这可以进行跨项目全局使用吗?

注意:当我导入 global using Shared.API.xxx 时,web 应用程序中的任何地方都按预期工作。

最佳答案

作为docs state - global usings 被限制在编译(项目)中的文件中:

Adding the global modifier to a using directive means that using is applied to all files in the compilation (typically a project).

如果您可以引入可传递的全局使用,想象一下进口污染。

但是您可以共享 global using 例如通过手动添加它们 as a link每个项目:

  • 在 VS 中 - 右键单击目标项目 -> 添加 -> 现有项 但不要单击“添加”,而是单击下拉列表向右箭头并选择“添加为链接”
  • 或通过添加以下内容手动编辑 .csproj:
<ItemGroup>
<Compile Include="Relative_Path_To_Shared.Setup.SharedUsingsFile.cs" Link="SharedUsingsFile.cs" />
</ItemGroup>

关于c# - 在 C# 中使用 CrossProject 全局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70484983/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com