Подтвердить что ты не робот

Как подсчитать, сколько слушателей подключено к событию?

Предполагая, что я объявил

public event EventArgs<SyslogMessageEventArgs> MessageReceived;

public int SubscribedClients
{
    get [...]
}

Я хотел бы подсчитать, сколько "подписанных клиентов" у моего класса. Мне нужно суммировать те, которые подписались по сети, хотя мои API (не показаны в фрагменте) плюс те, что сделали channel.MessageReceived+=myMethod;.

Я знаю, что события С# могут быть явно объявлены с помощью операторов add и remove, и я могу с уверенностью подсчитать + или -1 в локальном счетчике, но я никогда не писал код для явных событий на С#, поэтому я не знаю точно, что больше делать для добавления и удаления, а не для обновления счетчика.

Спасибо.

4b9b3361

Ответ 1

MessageReceived.GetInvocationList().Length