private static void SubscribeHandlers(Assembly assembly, IEventHubReader reader) { var handlerTypes = assembly.GetTypes() .Where(x => typeof(IEventDataHandler).IsAssignableFrom(x) && !x.IsInterface); foreach (var type in handlerTypes) { SubscribeHandler(type, reader); } }
private static void SubscribeExternalHandlers(IEventHubReader reader) { string handlersPath = Path.Combine(Directory.GetCurrentDirectory(), HandlersFolderName); if (Directory.Exists(handlersPath)) { var files = Directory.GetFiles(handlersPath); foreach (var file in files) { var assembly = Assembly.LoadFile(file); SubscribeHandlers(assembly, reader); } } }
public void Unsubscribe(IEventHubReader reader) { reader.MessageReceived -= Reader_MessageReceived; }
private static void SubscribeHandler(Type type, IEventHubReader reader) { var handler = Activator.CreateInstance(type) as IEventDataHandler; handler.Subscribe(reader); }