Привет всем,
У меня есть список "Типов", встречающих определенный критерий, который я получил с помощью отражения.Каждый из типов - это отдельная функция, которую пользователь может выбрать во время выполнения.Если я добавлю больше подклассов позже, эта динамическая реализация избавит меня от необходимости помнить об обновлении пользовательского элемента управления.
Список типов хорош, но было бы неплохо отобразить что-то более значимое, чем Name, как написано в коде.Например, вместо «RacingBikeDesigner» я хотел бы отобразить «Racing Bike Designer» и, возможно, даже отобразить другие свойства, связанные с этим типом, например «Description», чтобы пользователь знал, что делает этот конкретный выбор.
Итак, я полагаю, вопрос, учитывая тип, как я могу предоставить более значимое представление пользователю?Могу ли я добавить статическое поле к каждому подклассу и вызвать его из Типа, или я могу каким-то образом использовать преобразователь типа?
Пользовательский элемент управления (ListBox, ComboBox и т. Д.) Связан с возвращаемым значением ниже, но это не удобно:
List<string> LeftHandedUserChoices = new List<string>();
Type[] AllTypesInThisAssembly = Assembly.GetAssembly(typeof(UserChoices)).GetTypes();
foreach (Type _currentType in AllTypesInThisAssembly)
if (_currentType.IsSubclassOf(typeof(UserChoices)))
LeftHandedUserChoices.Add(_currentType.Name);
return LeftHandedUserChoices;
Cheers, Q