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);
                }
            }
        }
示例#3
0
 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);
        }