/// <summary>
        /// 注册应用服务所需组件
        /// </summary>
        /// <param name="services"></param>
        /// <param name="builderAction"></param>
        public static void AddErechtheionServices(this IErechtheionBuilder builder)
        {
            AutoMapperExtensions.Initialize();

            builder.Services.AddTransient <ITopicAppService, TopicAppService>();
            builder.Services.AddTransient <IChannelAppService, ChannelAppService>();
        }
        public static void UseEntityFrameworkCore(this IErechtheionBuilder builder, Action <DbContextOptionsBuilder> optionAction)
        {
            var services = builder.Services;

            services.AddEntityFrameworkSqlServer()
            .AddDbContext <ErechtheionDbContext>(optionAction);

            services.AddSingleton <ISeedDataInitiator, SeedDataInitiator>();

            //仓储
            services.AddScoped <ITopicRepository, TopicRepository>();
        }
        public static void UseDapperQueries(this IErechtheionBuilder builder)
        {
            var assembly = Assembly.GetExecutingAssembly();
            var sqlMaps  = assembly.GetManifestResourceNames().Where(r => r.Contains("SqlMaps"));
            var streams  = sqlMaps.Select(s => assembly.GetManifestResourceStream(s));

            foreach (var stream in streams)
            {
                SqlMap.Instance.Load(stream);
            }
            builder.Services.AddScoped <ITopicQuerySerivce, TopicQueryService>();
        }