既然C#10已经就位,我正在重构我的一些代码。我注意到参考文献的数量太多了。出于这个原因,我想将每个项目中共享的所有内容重构为一个";共享一个";使用global usings
,但它没有按预期工作。
只是为了";最小";实例
我有一个类库来配置API配置(中间件等等(。然后我还有其他几个图书馆。
这里的关键是我想要一个名为";设置";它引用所有其它的库;全局使用";,能够在包含所有域逻辑的网络应用程序中导入该库
但是,当我用global using Shared.API.xxx
在新的setup
项目中创建文件时,似乎什么都没做。
我还在Web应用程序中导入了setup
项目,做下一步:
<ItemGroup>
<Using Include="Shared.Setup" />
</ItemGroup>
这有可能进行跨项目全局使用吗?
注意:当我导入global using Shared.API.xxx
时,Web应用程序中的任何位置都能正常工作。
由于文档状态-global using
s被限制为编译(项目(中的文件:
向using指令添加全局修饰符意味着using应用于编译中的所有文件(通常是一个项目(。
如果你能引入可传递的全局用法,想象一下进口污染。
但是您可以共享global using
,例如,通过手动添加它们作为每个项目的链接:
- 在VS-中右键单击目标项目->添加->现有项目,但不是点击";添加";点击右边的下拉箭头并选择";添加为链接">
- 或者通过添加next手动编辑.csproj:
<ItemGroup>
<Compile Include="Relative_Path_To_Shared.Setup.SharedUsingsFile.cs" Link="SharedUsingsFile.cs" />
</ItemGroup>