У меня есть абстрактный класс Capability
, который моделирует каждую возможность физического устройства. Затем у меня есть подклассы, такие как InputSwitch
и TemperatureSensor
, которые могут запускать разные события.Перечисление событий класса во время выполнения
InputSwitch
довольно прост - при нажатии физического переключателя объект, представляющий его, вызывает событие Triggered
.
TemperatureSensor
несколько сложнее, поскольку он имеет два события: TemperatureOK
и TemperatureAlarm
.
Есть не только эти два подкласса, каждый из которых имеет различные события, которые они могут поднять. Также может быть больше экземпляров любого из подклассов, добавленных во время выполнения.
Конечный пользователь должен уметь указывать, что (если что-либо) происходит, когда эти события запускаются, и поэтому по существу я ищу, чтобы пользователь мог просматривать возможные события во всех экземплярах Capability
. Каждая возможность в настоящее время хранится в List<Capability>
.
Есть ли способ перечислить доступные события?
Я не думаю, что использование отражения для получения списка всех событий является жизнеспособным подходом. Что делать, если вы добавляете события, которые не следует выбирать? Используйте список событий, определенный вручную. –
Я не понял, что вы хотите точно, вы хотите перечислить события своего класса? или просто поднятые события экземпляра класса? –
@TimSchmelter - Я понимаю, что вы имеете в виду, но эти классы специально разработаны так, чтобы все события были доступны для конечного пользователя, чтобы назначать действия против. Я действительно не хотел дублировать в список, определенный вручную. @DotNeter - доступные события для каждого экземпляра класса - поэтому каждый экземпляр «TemperatureSensor» будет иметь два события «TemperatureOK» и «TemperatureAlarm» и т. Д. –