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

时间:2015-02-06 02:30:19

标签: c# .net types visibility .net-assembly

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

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

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

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

1 个答案:

答案 0 :(得分:2)

是否有可能将A类移到新项目中?然后,您只需从项目B中引用项目A,其他任何项目/程序集都不会看到它。

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

project Entity
project Database
project Server
project UserInterface

但是在你的情况下,你将实体和数据库混为一谈。因此,当UserInterface需要使用实体时,它还必须包含无用的数据库代码。