2009-01-03 9 views
6

Soy un desarrollador de Objective-C que transfiere una aplicación al mundo .Net. En mi aplicación Obj-C, utilizo objetos NSNotification para comunicarme asincrónicamente entre un puñado de objetos. ¿Hay alguna forma de hacer algo similar en el mundo .Net (más específicamente, usando el lenguaje C#)? El enfoque fundamental es que un objeto publica una notificación que uno o más objetos escuchan.C# /. Equivalente neto de NSNotification

Probablemente hay una manera obvia de hacer esto, pero no he encontrado todavía ...

+1

me escribió mi propia clase 'NSNotificationCenter' en .NET que funcionaba, por lo que he comprobado, de manera muy similar a Objective-C de. Si aún estás interesado, puedo subirlo a GitHub y publicar el enlace. – FreeAsInBeer

Respuesta

7

El uso de Delegados en C# o VB.NET es la característica integrada de idiomas equivalente. Puede crear eventos definiendo o usando un Delegado predefinido para definir la "notificación" a la que se puede publicar y suscribirse. Luego defina un evento en una clase a la que pueda suscribirse y subir. La documentación de MSDN tiene una buena descripción una vez que la encuentre here. Un buen ejemplo es here.

+0

@Scott: parece que usaste el mismo enlace dos veces ... –

+0

Gracias. Lo arreglé. No estoy seguro de cómo lo hice: S –

+1

Esos enlaces están muertos. ¿Qué tal este http://msdn.microsoft.com/en-us/library/17sde2xt(v=vs.90).aspx? – Jonny

1

Con NSNotification de Xcode de enviar un mensaje que se puede recibir por cualquier clase, siempre y cuando tenga implementar el objeto NSNotification dentro de la clase que es escuchar los mensajes .... Y declarar el observador;)

Aquí está mi teoría que podría probar ... En C# podría intentar crear su propio centro de notificación construyendo una clase estática que contenga eventos estáticos . Luego en tus otras clases, solo creas una instancia de los eventos. al hacer esto, podría recrear el mismo comportamiento que NSNotificationCenter de Xcode.

¿Has probado esto también? http://www.codeproject.com/Tips/438582/Csharp-NotificationCenter?msg=4398005#xx4398005xx

lo siento por cualquier error! ¡Responder por teléfono es incómodo!

0

Utilice la biblioteca NotificationCenter en Nuget Package Manager. Esta biblioteca funciona como Objective-C y Swift NSNotificationCenter. Un mecanismo de envío de notificación que permite la transmisión de información a observadores registrados.

PM> Install-Package NotificationCenter 

Github:

https://github.com/Husseinhj/NotificationCenter