2013-02-23 4 views
3

Включает ли новый класс TypeInfo частных пользователей по умолчанию в свойствах «DeclaredXXX»?Являются ли частные члены включенными в объявленные свойства TypeInfo?

+1

Не можете ли вы просто написать несколько строк кода и проверить его самостоятельно? – MarcinJuraszek

+2

Я могу, но никто не должен этого делать, поскольку это очень фундаментальный вопрос. Он не документирован в любом месте легко доступным, поэтому любой, кто хочет узнать, должен иметь код - sux, нет? – Alwyn

ответ

5

Он возвращается как частные, так и публичные члены. Однако только те, которые объявлены на этом уровне, любые унаследованные участники и т. Д. Не будут возвращены.

+0

Как мы можем получить частные поля, если они наследуются? –

+1

@ChrisKooken Возможно, вы захотите сделать рекурсивный поиск по каждому из базовых типов объекта (используя TypeInfo.BaseType) –

3

Если это Property и не Field он будет показывать частных пользователей в DeclaredProperties

public class Test 
{ 
    private string test; // will not be in DeclaredProperties 
    private string test2 { get; set; } // will be in DeclaredProperties 
    public int test3{ get; set; } // will be in DeclaredProperties 
} 

var result = typeof(Test).GetTypeInfo().DeclaredProperties;