Предупреждение анализа кода при объявлении события в интерфейсе
Почему это объявление события в следующем интерфейсе жалуется в анализаторе кода с 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, и, следовательно, предупреждение.