控制台程序使用ABP框架应用层服务

1.生产ABP框架基础服务,如下图所示

ABP框架基础

2.新建一个控制台程序,添加对Application项目引用。

控制台程序

3.新建一个模块类

using Abp.Events.Bus;
using Abp.Modules;
using Abp.Reflection.Extensions;
using Castle.MicroKernel.Registration;
using com.f1bpm.Configuration;
using com.f1bpm.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;

namespace com.f1bpm.Jobs
{
    [DependsOn(typeof(f1bpmApplicationModule))]
    [DependsOn(typeof(f1bpmEntityFrameworkModule))]
    public class MyConsoleAppModule : AbpModule
    {
        private readonly IConfigurationRoot _appConfiguration;

        public MyConsoleAppModule(f1bpmEntityFrameworkModule abpProjectNameEntityFrameworkModule)
        {
            abpProjectNameEntityFrameworkModule.SkipDbSeed = true;
            _appConfiguration = AppConfigurations.Get(
                typeof(MyConsoleAppModule).GetAssembly().GetDirectoryPathOrNull()
            );
        }

        public override void PreInitialize()
        {
            Configuration.DefaultNameOrConnectionString = _appConfiguration.GetConnectionString(
                f1bpmConsts.ConnectionStringName
            );

            Configuration.BackgroundJobs.IsJobExecutionEnabled = false;
            Configuration.ReplaceService(
                typeof(IEventBus),
                () => IocManager.IocContainer.Register(
                    Component.For<IEventBus>().Instance(NullEventBus.Instance)
                )
            );
        }

        public override void Initialize()
        {
            IocManager.RegisterAssemblyByConvention(typeof(MyConsoleAppModule).GetAssembly());
        }
    }
}

4.通过IOC调用应用层或领域层服务方法

 using (var bootstrapper = AbpBootstrapper.Create<MyConsoleAppModule>())
            {
                bootstrapper.IocManager.IocContainer
                    .AddFacility<LoggingFacility>(
                        f => f.UseAbpLog4Net().WithConfig("log4net.config")
                    );

                bootstrapper.Initialize();

                using (var caller = bootstrapper.IocManager.ResolveAsDisposable<EngineManager>())
                {
                    caller.Object.NewStart(jsondata);
                }
            }
展开阅读全文
©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值