Ваш вопрос не совсем понятен.Похоже, вам нужны значения полей для данного экземпляра вашего класса:
var fieldValues = foo.GetType()
.GetFields()
.Select(field => field.GetValue(foo))
.ToList();
Обратите внимание, что fieldValues
равно List<object>
.Здесь foo
- это существующий экземпляр вашего класса.
Если вы хотите, чтобы поля public
и не public
, вам нужно изменить флаги привязки с помощью
var bindingFlags = BindingFlags.Instance |
BindingFlags.NonPublic |
BindingFlags.Public;
var fieldValues = foo.GetType()
.GetFields(bindingFlags)
.Select(field => field.GetValue(foo))
.ToList();
Если вам просто нужны имена:
var fieldNames = typeof(Foo).GetFields()
.Select(field => field.Name)
.ToList();
Здесь Foo
- это имя вашего класса.