2011-08-17 144 views

回答

8

如何判断MemberInfo是否是内部的?

你不能因为这个问题实际上没有意义。

成员信息可能表示一个属性,并且属性没有可访问性。 (吸气剂和接受器具有辅助功能,但因为它们可能不同,所以该属性不具有辅助功能。)

由于存在无法访问的成员,因此无法确定成员的可访问性只是从一个MemberInfo。你需要把它变成一个FieldInfo或者TypeInfo或者它实际上是什么,然后问这个对象什么是可访问性。 (当然,如果它是一个PropertyInfo,那么你必须弄清楚你对getter还是setter感兴趣,并获得与之相关的方法信息。)

+0

非常有帮助谢谢。是['IsAssembly'](http://msdn.microsoft.com/en-us/library/system.reflection.methodbase.isassembly(v = VS.100).aspx)正确的属性? – smartcaveman

+1

@smartcaveman:是的,“assembly”是Reflection如何引用C#所谓的“内部”和VB调用“朋友”的可访问性。请注意,对于IsAssembly,“受保护的内部”/“受保护的朋友”字段将* not *返回true。阅读MSDN文档以获取详细信息。 –