Я хочу использовать Reflection, чтобы динамически заполнять мои флажки.C# Получить список классов в пространстве имен за рефлексию
Я нашел помогает ответ here
И использовал его в своем коде:
public static List<System.Type> getModuleList()
{
// fill with all Classes in Timestamp.View.UserControls.ModuleView per Reflection
List<System.Type> theList = Assembly.GetExecutingAssembly().GetTypes()
.Where(t => t.Namespace == "Timestamp.View.UserControls.ModuleView")
.ToList();
return theList;
}
я заполнил мои Флажки как:
foreach (System.Type type in ModuleController.getModuleList())
{
cbModule1.Items.Add(type);
cbModule2.Items.Add(type);
cbModule3.Items.Add(type);
cbModule4.Items.Add(type);
}
Теперь я хочу, чтобы создать новый экземпляр выбранного типа
private void CbModule4_SelectionChanged(object sender, SelectionChangedEventArgs e) { ucModul4.Content = //new Instance of Selected Item }
Я могу использовать Reflection для создания нового экземпляра, но я не знаю, как это сделать.
- Я хочу дать каждому классу строку, которая будет отображаться как элемент в флажке. Возможно ли это, или мне нужен метод для поиска класса по его строке?
EDIT: Мне нужно доказывать, почему мой вопрос отличается от this one
Итак, прежде всего, этот вопрос можно решить только одну из моих проблем, но я нашел его раньше, и это не помогло мне. Я не знаю, как получить тип списка и как я могу дать классу псевдоним.
Не ходи для отражения по пространствам имен, определите общий интерфейс, поскольку все они, похоже, имеют что-то общее, а затем просто получают типы, реализующие этот интерфейс , Затем вы можете заполнить те свойства, которые вы хотите, напечатанным способом, и предположительно у них будет метка и свойство checked – Icepickle
@Icepickle. У всех их есть общий интерфейс под названием IModuleView. Но как мне получить все классы, реализующие этот интерфейс? – itskajo