Я пытаюсь пропустить некоторые статические свойства в простом статическом классе, чтобы заполнить поле со списком со своими значениями, но у меня возникают трудности.
Вот простой класс:
public static MyStaticClass()
{
public static string property1 = "NumberOne";
public static string property2 = "NumberTwo";
public static string property3 = "NumberThree";
}
... и код, пытающийся получить значения:
Type myType = typeof(MyStaticClass);
PropertyInfo[] properties = myType.GetProperties(
BindingFlags.Public | BindingFlags.Static | BindingFlags.DeclaredOnly);
foreach (PropertyInfo property in properties)
{
MyComboBox.Items.Add(property.GetValue(myType, null).ToString());
}
Если я не снабжу флагов привязки, я получаю около 57 свойств, включая такие вещи, как System.Reflection.Module Module и всевозможные другие унаследованные вещи, которые мне не нужны. Мои 3 объявленные свойства отсутствуют.
Если я поставляю различные комбинации других флагов, он всегда возвращает 0 свойств. Отлично.
Имеет ли значение, что мой статический класс фактически объявлен в другом нестатическом классе?
Что я делаю неправильно?