При использовании атрибута EventArgs в методе делегата он генерирует класс обработчика событий со свойствами, основанными на параметрах метода, кроме первого.
В сгенерированном классе аргументов события отсутствует первый параметр.
Например:
[Protocol, Model]
[BaseType(typeof(NSObject))]
public interface TestDelegate
{
// @required -(void)DidReceiveFrom:(NSString * _Nonnull)p1 withP2:(NSString * _Nonnull)p2 withP3:(NSString * _Nonnull)p3 withP4:(NSString * _Nonnull)p4;
[Abstract]
[Export("DidReceiveFrom:withP2:withP3:withP4:")]
[EventArgs("DidReceiveFrom")]
void DidReceiveFrom(string p1, string p2, string p3, string p4);
Затем сгенерированный класс EventArgs становится:
//
// EventArgs classes
//
public partial class DidReceiveFromEventArgs : EventArgs {
public DidReceiveFromEventArgs (string p2, string p3, string p4)
{
this.p2 = p2;
this.p3 = p3;
this.p4 = p4;
}
public string p2 { get; set; }
public string p3 { get; set; }
public string p4 { get; set; }
}
Так что определенно отсутствует свойство p1. Как избежать такого поведения?