Actualmente estoy desarrollando una clase EventManager para garantizar que no queden eventos conectados a los clientes dúplex WCF muertos, y también para evitar el cableado múltiple del mismo cliente al único evento.Al pasar delegado como parámetro de método
Ahora, básicamente, estoy atascado tratando de pasar el delegado del evento a una función que controlará la asignación de esta manera.
var handler = new SomeEventHandler(MyHandler);
Wire(myObject.SomeEventDelegate, handler);
Para llamar a esto:
private void Wire(Delegate eventDelegate, Delegate handler)
{
// Pre validate the subscription.
eventDelegate = Delegate.Combine(eventDelegate, handler);
// Post actions (storing subscribed event delegates in a list)
}
actualización
El código para el envoltorio SomeEventDelegate es:
public Delegate SomeEventDelegate
{
get { return SomeEvent; }
set { SomeEvent = (SomeEventHandler) value; }
}
event SomeEventHandler SomeEvent;
Obviamente no se devuelve el delegado de la myObject. SomeEventDelegate Y no puedo devolver al delegado del método porque también necesito validación alguna. ¿Tiene alguna idea sobre cómo hacer esto?
puede combinar el uso de los delegados + = – Andrey
C# eventos generan un delegado oculto para ti. Para acceder a este evento, consulte: http://stackoverflow.com/questions/1129517/c-how-to-find-if-an-event-is-hooked-up/1129530#1129530. –
http://izlooite.blogspot.com/2011/02/delegates-vs-methods.html –