我正在使用 .NET 4.5.2 并且需要从程序集B访问程序集A中定义的 ClassA ,但是需要声明 ClassA 作为内部,以避免从其他程序集访问它。
我不想使用 InternalsVisibleTo ,因为我不希望所有程序集A类型的内部端暴露给程序集B.
总结:我需要对程序集类型进行离散定义的可见性。这可能吗?
编辑:StrongNameIdentityPermissionAttribute与我的需求非常相似,但我只是不希望这些类型是公开的,因为我希望它们也在编译时隐藏。
答案 0 :(得分:2)
是否有可能将A类移到新项目中?然后,您只需从项目B中引用项目A,其他任何项目/程序集都不会看到它。
如果那是不可能的,那么我同意Eric的说法,设计似乎不正确。这就像拥有这个标准的项目结构:
project Entity
project Database
project Server
project UserInterface
但是在你的情况下,你将实体和数据库混为一谈。因此,当UserInterface需要使用实体时,它还必须包含无用的数据库代码。