【发布时间】:2011-11-15 19:06:35
【问题描述】:
我正在重构一些不是我编写的代码,其中包含我不想公开的业务逻辑和专有算法。当前所有代码都标记为内部代码;出于测试目的,并确保我不会破坏现有的客户端/服务,我想将它们切换为使用接口,并实现这些接口。
我已将我的类标记为内部,将它们的成员标记为受保护的内部,并将我的接口标记为内部,但要使用内部接口,我必须公开我的几个属性。
我相信,通过一些有限的测试,似乎已经证明只有朋友程序集和我的程序集中的类可以使用这些内部接口和类。
只要类和接口都保持在内部,即使某些方法和属性被标记为public,它们是否会被公开?
似乎不是这样,但我正在寻找我可能错过的任何东西。
【问题讨论】:
-
除非您在部分信任的情况下工作,否则可访问性只是很好地要求不要使用某些东西。它绝不会保护专有代码[除了给混淆器更多的回旋余地]。
-
类不能被保护,除非它们是嵌套的。
-
已更正,表示类为内部的,其成员为受保护的内部
-
@Brian:如果类是
internal,那么可以说,这些属性将是“受保护的”。就好像它们是internal类上的public属性一样。由于该类是不可见的,因此属性也是如此(当然,前提是该类不能通过更公共的接口了解......)
标签: c# .net visual-studio-2010 .net-4.0 interface