隐藏第三个依赖项目中的命名空间

Hide namespace in 3rd dependent project

提问人:cflorenciav 提问时间:4/30/2022 更新时间:4/30/2022 访问量:235

问:

我在同一个解决方案中有 3 个项目,每个项目都依赖于前一个项目(DB < - 提供程序 < - WinUI)。在数据库中,我定义了一个 Behaviour 类,该类将在具有映射器 Behavioud 类的提供程序中使用,这是 WinUI 项目最后一次使用。(WinUI 不直接依赖于 DB)。

有没有办法在 WinUI 中隐藏数据库的 clases?此项目应仅使用提供程序 clases。

enter image description here

enter image description here

C# .NET 命名空间 依赖项 项目

评论

0赞 gunr2171 4/30/2022
只是一个小点,你不能真正阻止命名空间被共享,反正这应该无关紧要。唯一可以限制的是类型是否可访问。

答:

2赞 gunr2171 4/30/2022 #1

首先,将 DB 项目中的类标记为 。Behaviourinternal

二、添加

  • 对于包含 AssemblyInfo.cs 文件的项目
    [assembly: InternalsVisibleTo("Providers")]
    
  • 对于 .Net 5+,在 csproj 文件中(更多信息)
    <ItemGroup>
      <InternalsVisibleTo Include="Providers" />
    </ItemGroup>
    

internal防止该类在其他程序集中可见。assembly 属性允许与您命名的程序集共享内部类。