Предупреждение анализа кода при объявлении события в интерфейсе

Почему это объявление события в следующем интерфейсе жалуется в анализаторе кода с CA1009? В реализации он действительно следует стандартным правилам объявления событий.

using System;

namespace Client.Wpf.Utilities.MessageSubscription
{
    public interface ITrigger<TMessageType>
    {
        event EventHandler<TMessageType> Fire;
    }
}

CA1009 Объявите обработчики событий правильно

Объявите второй параметр EventHandler как EventArgs или экземпляр типа, расширяющего EventArgs, с именем "e".

ITrigger.cs 7

И реализация:

using System;
//using GalaSoft.MvvmLight.Messaging;

namespace Client.Wpf.Utilities.MessageSubscription
{
    public class MvvmMessageTrigger<TMessageType> : ITrigger<TMessageType>
    {
        public MvvmMessageTrigger()
        {
            //Messenger.Default.Register<TMessageType>(this, InvokeSubscribers);
        }

        public event EventHandler<TMessageType> Fire;

        private void InvokeSubscribers(TMessageType messageType)
        {
            if (null != Fire)
            {
                Fire(this, messageType);
            }
        }
    }
}

1 ответ

Решение

Ошибка довольно очевидна:

Объявите второй параметр EventHandler как EventArgs или экземпляр типа, расширяющего EventArgs, с именем "e".

В моем примере выше TMessageType не наследовал от EventArgs, и, следовательно, предупреждение.

Другие вопросы по тегам