我看了this thread,我想知道为什么有人应该使用PrivateObject
。在很多步骤中,我看不到任何纯粹反射无法实现的价值。此外,PrivateObject
也使用反射。
对于那个有利于反思的课程是否有任何用处?考虑一下:
var myProp = typeof(MyClass).GetProperty("Name", BindingFlags.Instance | BindingFlags.NonPublic);
在
var myProp = new PrivateObject(typeof(MyClass)).GetFieldOrProperty("Name");
我注意到有一个非常小的区别,我不需要知道实际的访问修饰符,但我看不出一个优于另一个的任何进一步优势?你呢?
答案 0 :(得分:1)
像Private
这样的范围并不是一个安全功能。它们是提高可维护性的一项功能。
想象一下拥有数百万行代码的软件,你不知道哪些类可以使用,哪些不可以使用。
它可以更轻松地控制您的课程及其组织。
答案 1 :(得分:1)