如何离散地定义我的程序集类型的可见性?
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 时,它也必须包含无用的数据库代码。
我正在使用 .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 时,它也必须包含无用的数据库代码。