示例#1
0
        public static List <IRouterManager> GetAllRouterManagerImplementations()
        {
            List <IRouterManager> instances = new List <IRouterManager>();

            var all =
                Assembly
                .GetEntryAssembly()
                .GetReferencedAssemblies()
                .Select(Assembly.Load)
                .SelectMany(x => x.DefinedTypes)
                .Where(type => typeof(IRouterManager).IsAssignableFrom(type.AsType()) && type.IsClass && !type.IsAbstract);

            foreach (var ti in all)
            {
                var t = ti.AsType();
                if (!t.Equals(typeof(IRouterManager)))
                {
                    IRouterManager instance = (IRouterManager)Activator.CreateInstance(t);
                    instances.Add(instance);
                }
            }

            return(instances);
        }
 public RouterAppService(IRepository <User, long> userRepository, IRouterManager routerManager)
 {
     _userRepository = userRepository;
     _routerManager  = routerManager;
 }
示例#3
0
 public TelegramBotServer(ITelegramBotClient botClient, IAuthenticator authenticator, IRouterManager routerManager)
 {
     this.bot = new Lazy <Task <(ITelegramBotClient Client, string Name)> >(async() =>
     {
         var botUser = await botClient.GetMeAsync().ConfigureAwait(false);
         return(botClient, botUser.FirstName);
     });
     this.authenticator = authenticator;
     this.routerManager = routerManager;
 }