【发布时间】:2016-01-21 11:04:07
【问题描述】:
如果我将公共类中的静态方法的访问修饰符从内部更改为公共,它会破坏调用该方法的外部程序集吗?
注意:内部方法可以被外部程序集调用,使用 InternalsVisibleTo 属性:
[assembly: InternalsVisibleTo("TheExternalAssembly")]
namespace TheAssemblyWithInternalMethod
【问题讨论】:
-
简短回答:不。为什么会这样,除非外部程序集对调用方法等进行一些反射?
-
@DingxinXu 从
internal到public或者反之亦然? -
相关:“Is it a breaking change that modifying the access modifier of a public property?” - 但这不适用于
static成员。 -
" 外部程序集可以使用 InternalsVisibleTo 属性调用内部方法"。这与您的问题无关。撇开这应该被视为“不使用”功能这一事实不谈,
TheExternalAssembly已经有效地将任何内部静态方法视为公共的。 -
@DavidArno 是的,我同意这应该被视为“不使用”,但实际上,我已经在生产代码中看到了它......
标签: c#