WCF Передача EventArgs как DataMember - PullRequest
0 голосов
/ 15 октября 2018

У меня есть служба WCF, которая должна иметь возможность передавать любой полученный аргумент события.Поскольку я не знаю тип EventArg, который я получу, мне нужно обязательно передать объект клиенту.
У меня есть следующий DataContract:

[DataContract]
[KnownType(typeof(EventArgs))]

public class EventProxy
{
    [DataMember]
    public EventArgs EventArgs { get; set; }

    [DataMember]
    public string EventName { get; set; }

    [DataMember]
    public string Sender { get; set; }

    [DataMember]
    public string Target { get; set; }
}

Когда я передаю этовплоть до клиента я получаю следующее исключение:

Произошла ошибка при попытке сериализации параметра http://tempuri.org/:data. Сообщение InnerException было 'Type' TrailAlarmService.TrialAlarmService + AlarmEventArgs 'с контрактом данныхname 'TrialAlarmService.AlarmEventArgs: http://schemas.datacontract.org/2004/07/TrailAlarmService' не ожидается.

Я получаю подсказку, что это не лучшее решение, но мне нужно иметь возможность передать универсальный EventArgs.

...