除了几个类之外,InternalsVisibleTo 的作用是什么?

5

我在我的一个项目中应用了 InternalsVisibleTo,以便其内部内容对测试项目可见。但是(这很奇怪,我知道),我需要将一些内部类标记为不可见,以防止它们被通过 InternalsVisibleTo 指定的项目所看到。

是否有任何可供编译器识别的属性可以应用于此?


把这个类变成私有的,怎么样? - RJ Lohan
@RJLohan,其他类无法使用它。这就是内部访问修饰符的全部意义。 - tugberk
我不确定这是可能的。另一种选择是将那些类移动到它们自己的程序集中。 - Simon Whitehead
@SimonWhitehead 是的,我也考虑过那个,但我也不想这样做 :s - tugberk
2
由于InternalsVisibleTo只能在程序集级别使用,而internal是除了其他程序集之外使类公开的唯一方法,我认为这是不可能的。唯一的方法是移动这些类型。好好考虑一下,也许将这些类型放在单独的程序集中是有意义的。 - Androiderson
@AndersonSilva 谢谢!最终我将测试项目分开,这样我就不会引用两个项目了,因为我一直在遇到编译错误。 - tugberk
1个回答

5

安德森·席尔瓦是正确的。 没有办法做到这一点。 您应该考虑将类型移动到新的程序集中。 或者,您可以考虑应用 [EditorBrowsable(EditorBrowsableState.Never)] 属性来隐藏 IntelliSense 中的类型,尽管如果用户知道它们,代码将编译。


谢谢你的回答。我最终将测试项目分开了。 - tugberk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接