.net core控制台引用abp依赖注入及AbpModule
- 创建一个.net core3.1控制台应用程序
-
添加引用
<PackageReference Include="Microsoft.Extensions.Hosting" Version="3.1.22" />
<PackageReference Include="Volo.Abp.Core" Version="3.3.2" /> - 添加接口 ITestService,类TestService实现方法SayHello
internal interface ITestService : ITransientDependency { string SayHello(); } - Program类:
internal class Program { static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } internal static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureServices((hostingContext, service) => {
//AbpApplicationFactory 用于创建应用程序并加载所有以AppModule作为启动模块的模块. Initialize()方法启动应用程序. using (var application = AbpApplicationFactory.Create<AbpDependencyInjectionDemoModule>()) { application.Initialize();//启动abp Console.WriteLine("DoWork..."); } }); } - 添加class AbpDependencyInjectionDemoModule
public class AbpDependencyInjectionDemoModule : AbpModule { /// <summary> /// service注入 /// </summary> /// <param name="context"></param> public override void ConfigureServices(ServiceConfigurationContext context) { var services = context.Services; Console.WriteLine("注入Services"); } /// <summary> /// 程序初始化 /// </summary> /// <param name="context"></param> public override void OnApplicationInitialization(ApplicationInitializationContext context) { var serviceProvider = context.ServiceProvider; var testservice = serviceProvider.GetService<ITestService>(); Console.WriteLine(testservice.SayHello()); } } - 运行 有打印Hello,说明注入ITestService服务成功
![]()
- 其他程序集使用abp依赖注入,先添加程序集module加载
[DependsOn( typeof(ApplicationModule) )] -
abp是通过加载module所在程序集,注入继承ITransientDependency等相关接口的类或接口


浙公网安备 33010602011771号