속성에는 get 및 set 메서드가 포함되어 있으며 액세스 가능성이 다를 수 있습니다 (예 : public 및 other 중 하나를 보호 할 수 있음). 또한 getter 또는 setter가 누락 될 수 있습니다 (get-only 또는 set-only 속성). 너무 그것으로 잘 작동합니다 -
typeof(AClass).GetProperties(BindingFlags.Instance | BindingFlags.NonPublic)
.Where(c => c.GetMethod != null && c.GetMethod.IsFamily || c.SetMethod != null && c.SetMethod.IsFamily).ToArray();
는 또한 BindingFlags.Public
을 제거했지만, 그 필요하지 않습니다 : 가져 오거나 설정할 방법이 보호되고,이 작업을 수행 할 수 있습니다 등록 정보를 얻으려면.
당신이 보호 및 공용 속성, 그냥 조금 수정 얻을하려면
:
typeof(AClass).GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)
.Where(c => (c.GetMethod != null && (c.GetMethod.IsPublic || c.GetMethod.IsFamily)) || (c.SetMethod != null && (c.SetMethod.IsPublic || c.SetMethod.IsFamily))).ToArray();
출처
2016-06-09 12:54:35
Evk
이 BindingFlags.Public''제거하십시오. – theB
@theB 미안하지만 내 질문을 수정했습니다. 유형 및 내부 및 개인이 아닌 보호되고 공개 된 속성을 가져오고 싶습니다. – Anwuna
답장을 게시 한 후 게시물을 수정하여 답을 수정하고 무효화하는 것보다는 먼저 무엇을 하려는지 분명히해야합니다. – Rahul