【问题标题】:InternalsVisibleTo except for a few classesInternalsVisibleTo 除了少数类
【发布时间】:2013-01-04 01:11:21
【问题描述】:

我将InternalsVisibleTo 应用到我的一个项目中,以使其内部结构对测试项目可见。但是,(我知道这很奇怪)我需要标记一些内部类,以便它们不会对通过InternalsVisibleTo 指示的项目可见。

有没有编译器知道的我可以应用的属性?

【问题讨论】:

  • 改为私有类?
  • @RJLohan 那么,其他类就无法使用了。这就是内部访问修饰符的重点。
  • 我不确定这是否可能。另一种方法是将这些类移动到它们自己的程序集中。
  • @SimonWhitehead 是的,我想过,但我也不想这样做:s
  • 由于 InternalsVisibleTo 只能在程序集级别使用,并且 internal 是使除其他程序集之外的类公开的唯一方法,我认为这是不可能的。唯一的方法是移动这些类型。仔细想想,也许这些类型在单独的程序集中是有意义的。

标签: c# .net compiler-construction internalsvisibleto


【解决方案1】:

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

【讨论】:

  • 感谢您的回答。我最终分离了测试项目。
猜你喜欢
  • 2012-03-11
  • 2014-04-21
  • 2011-08-21
  • 1970-01-01
  • 2011-03-21
  • 1970-01-01
  • 2016-05-28
  • 2015-02-13
  • 2017-03-10
相关资源
最近更新 更多