如何离散地定义我的程序集类型的可见性?

How discretely defined visibility of my assemblies types?

我正在使用 .NET 4.5.2 并且需要从程序集 B 访问程序集 A 中定义的 ClassA,但是想要将 ClassA 声明为内部类以避免其他程序集访问它。

我不想使用 InternalsVisibleTo 因为我不想将所有程序集 A 类型的内部端暴露给程序集 B。

总结:我需要离散定义程序集类型的可见性。这可能吗?

编辑:StrongNameIdentityPermissionAttribute 与我需要的非常相似,但我只是不希望类型为 public,因为我也希望它们在编译时隐藏。

是否可以单独将 class A 移至新项目?然后您可以只从项目 B 引用项目 A,其他项目/程序集将看不到它。

如果那不可能,那么我同意 Eric 的设计似乎不正确。这就像拥有这个标准的项目结构:

project Entity
project Database
project Server
project UserInterface

但在您的情况下,您将实体和数据库混为一谈。所以当 UserInterface 需要使用 Entities 时,它也必须包含无用的数据库代码。