C#中如何迭代内部属性放;}publicstringproperty2{得到;放;}内部字符串property3{get;放;}内部字符串property4{get;放;}内部字符串属性5{get;放;我可以使用以下循环遍历属性,但它只显示公共属性。我需要所有属性。foreach(PropertyInfopropertyintypeof(TestClass).GetProperties()){//dosomething}您需要使用重载接受BindingFlags来指定您想要的不仅仅是公共属性:foreach(PropertyInfopropertyintypeof(TestClass).GetProperties(BindingFlags.Instance|BindingFlags.NonPublic|BindingFlags.Public)){//dosomething}添加BindingFlags.Static如果你想包含静态属性。无参数重载仅返回公共属性。您需要在调用Type.GetProperties之前更改BindingFlagsforeach(varinstancePropertyininstanceProperties){//alittlesomethingfortheinstanceProperty}根据MSDN,反射API无法识别私有和内部。要使用反射识别内部方法,请使用IsAssembly属性。要识别受保护的内部方法,请使用IsFamilyOrAssembly。如果您正在编写一些测试单元,您可能需要查看InternalsVisibleTo属性。它允许您指定哪个程序集可以看到内部属性。最后,你真的需要内部属性......通过在GetProperties中指定哪些bindingflags:foreach(PropertyInfopropertyintypeof(TestClass).GetProperties(BindingFlags.Instance|BindingFlags.Public|BindingFlags.NonPublic))UsingBindingFlags以上是C#的学习教程:如何遍历c#内部属性共享的所有内容,如果对大家有用,需要了解更多C#学习教程,希望大家多多关注—foreach(PropertyInfopropertyintypeof(TestClass).GetProperties(BindingFlags.Public|BindingFlags.NonPublic|BindingFlags.Instance)){//dosomething}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
