2010-08-22 44 views
2

在.NET中,是由运行时还是由编译器强制的私有方法和属性?在.NET中,如何限制对私有方法的访问?

如果您尝试调用另一个对象的私有方法,编译器将抛出一个访问异常。如果您手动操作IL或尝试通过反射进行调用,您会做什么?另外,它是否因运行时版本而异(1.1 vs 2.0 vs 3.5 vs 4.0)?

回答

4

这是编译时限制。您可以在所有版本的.NET中通过Reflection调用私有方法。从.NET 4.0开始,您可以使用dynamics来完成。另外,使用Reflection可以看到并使用自动属性后面的方法。毫无疑问,这不是建议的。