在 C# 中使用 CrossProject 全局
CrossProject global using in C#
现在 C#10 已经到位,我正在重构我的一些代码。我注意到参考文献的数量是疯狂的。
出于这个原因,我想使用 global usings
将每个项目共享的所有内容重构为一个“共享的”,但它没有按预期工作。
仅针对“最小”示例。
我有一个 class 库来配置 API 配置(中间件等)。然后我还有其他几个库。
这里的关键是我想要一个名为“setup”的库,它引用所有其他库,并且使用“global usings”,能够将该库导入包含所有域的 webapplications逻辑
但是,当我在新的 setup
项目中使用 global using Shared.API.xxx
创建文件时,似乎什么也没做。
我还在 webapplication 中导入了 setup
项目做下一个:
<ItemGroup>
<Using Include="Shared.Setup" />
</ItemGroup>
是否可以跨项目全局使用?
注意:当我导入 global using Shared.API.xxx
时,网络应用程序内的任何地方都按预期工作。
作为 docs 状态 - global using
s 被限制为编译(项目)中的文件:
Adding the global modifier to a using directive means that using is applied to all files in the compilation (typically a project).
如果您可以引入可传递的全局使用,想象一下进口污染。
但是您可以共享 global using
,例如通过手动将它们添加 到每个项目:
- 在 VS 中 - 右键单击目标项目 -> 添加 -> 现有项目但不要单击“添加”,而是单击右侧的下拉箭头和 select“添加为 Link”
- 或手动编辑 .csproj 添加下一个:
<ItemGroup>
<Compile Include="Relative_Path_To_Shared.Setup.SharedUsingsFile.cs" Link="SharedUsingsFile.cs" />
</ItemGroup>
现在 C#10 已经到位,我正在重构我的一些代码。我注意到参考文献的数量是疯狂的。
出于这个原因,我想使用 global usings
将每个项目共享的所有内容重构为一个“共享的”,但它没有按预期工作。
仅针对“最小”示例。
我有一个 class 库来配置 API 配置(中间件等)。然后我还有其他几个库。
这里的关键是我想要一个名为“setup”的库,它引用所有其他库,并且使用“global usings”,能够将该库导入包含所有域的 webapplications逻辑
但是,当我在新的 setup
项目中使用 global using Shared.API.xxx
创建文件时,似乎什么也没做。
我还在 webapplication 中导入了 setup
项目做下一个:
<ItemGroup>
<Using Include="Shared.Setup" />
</ItemGroup>
是否可以跨项目全局使用?
注意:当我导入 global using Shared.API.xxx
时,网络应用程序内的任何地方都按预期工作。
作为 docs 状态 - global using
s 被限制为编译(项目)中的文件:
Adding the global modifier to a using directive means that using is applied to all files in the compilation (typically a project).
如果您可以引入可传递的全局使用,想象一下进口污染。
但是您可以共享 global using
,例如通过手动将它们添加
- 在 VS 中 - 右键单击目标项目 -> 添加 -> 现有项目但不要单击“添加”,而是单击右侧的下拉箭头和 select“添加为 Link”
- 或手动编辑 .csproj 添加下一个:
<ItemGroup>
<Compile Include="Relative_Path_To_Shared.Setup.SharedUsingsFile.cs" Link="SharedUsingsFile.cs" />
</ItemGroup>