Estoy intentando publicar un evento de un tipo F #, pero quiero que se vea como un evento desde C# o VB. Parece que la forma correcta de hacerlo solía ser IEvent.create_HandlerEvent, pero esta función no existe en la versión más reciente de F #. Entonces, ¿cuál es la forma correcta de hacerlo ahora?¿Cómo crear eventos compatibles con .NET en F #?
9
A
Respuesta
13
Los eventos no son mi fuerte, pero este ejemplo parece funcionar en F # 1.9.6.16:
namespace EventExample
open System
type MyEventArgs(msg:string) =
inherit EventArgs()
member this.Message = msg
type MyEventDelegate = delegate of obj * MyEventArgs -> unit
type Foo() =
let ev = new Event<MyEventDelegate, MyEventArgs>()
member this.Ping(msg) =
ev.Trigger(this, new MyEventArgs(msg))
[<CLIEvent>]
member this.GotPinged = ev.Publish
Véase también
Cuestiones relacionadas
- 1. Cómo generar tipos compatibles con C#, compatible con .NET 4.0 utilizando proveedores de tipo F # 3.0
- 2. Idiomas dinámicos compatibles con .NET 4.0 DLR
- 3. Eventos y delegados en F #
- 4. ¿Cómo crear eventos personalizados?
- 5. Crear eventos con google closure
- 6. Accesorios compatibles con Mocha compatibles
- 7. F # Crear matriz 2D
- 8. Cómo crear una clase vacía en F #
- 9. Desarrollo web simple de .NET con F #
- 10. Crear JSON con .net
- 11. Cómo se asignan los eventos en .NET
- 12. eventos WinRT se interoperar con .NET
- 13. ¿Controles de cuadrícula compatibles con .NET y Mono?
- 14. ¿Cómo crear archivos .odt con C# .NET?
- 15. Cómo crear eventos personalizados en vivo en jQuery
- 16. Asincronía y eventos .NET?
- 17. Cómo usar archivos compatibles con ARC en proyectos que no son compatibles con ARC
- 18. Remedo de eventos en .NET
- 19. Separador de miles en .Net/F #
- 20. ¿Cómo puedo crear hojas de cálculo compatibles con Excel en el lado del servidor en C#?
- 21. Forwarding/retransmisión de eventos .NET
- 22. F # en Linux, sin experiencia .NET previa
- 23. Cómo inyectar manejadores de eventos en eventos con Unity
- 24. F #/.NET instancia nula rareza
- 25. Dapper dot net query en F #
- 26. Agregue la función f # como controlador de eventos en xaml
- 27. Compiladores compatibles con C11
- 28. ¿Cómo puedo crear una Acción <T> en F #?
- 29. ¿Cómo crear eventos recurrentes de calendario?
- 30. Crear notificaciones emergentes de "tostadora" en Windows con .NET
Gracias, funciona :) ¿Puedo preguntar cómo lo hizo usted sabe sobre CLIEventAttribute? No lo veo mencionado en ningún lugar de la especificación de documentación/idioma/google ... –
Lo sé porque soy un desarrollador en el equipo F #, así que tengo 'información interna'. :) Sí, parece que falta en las notas de la versión y la especificación; estaremos haciendo una actualización de especificaciones pronto. (Siéntase libre de darme un voto positivo además de la marca de verificación :) :) – Brian
Me encanta cuando los informantes internos aparecen con los productos ;-p –