Skip to content

模块注入模块引用 设计灵感来源于ABPModule,简化了很多没有必要的依赖,可自动扩展工具

License

Notifications You must be signed in to change notification settings

239573049/token-module

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TokenModule

WebApi 的Module

NuGet NuGet

列表模块

模块名称 Nuget下载量 Nuget版本号
事件总线 NuGet NuGet
TokenModule NuGet NuGet

介绍

模块注入模块引用 设计灵感来源于ABPModule,简化了很多没有必要的依赖,可自动扩展工具 /test/的Demo项目是一个完整的项目示例,有兴趣的可以查看阅读

使用教程

using Token.Module.Extensions;
using NetCoreTest;

var builder = WebApplication.CreateBuilder(args);
// 执行这一步的时候就会先执行NetCoreTestModule里面的 ConfigureService方法,
// 执行顺序ConfigureServicesAsync =》ConfigureService方法
// 如果NetCoreTestModule中使用了[DependOn(typeof(其他的Module))] 这样就可以按照传入顺序一并执行
// 默认自动依赖注入继承指定依赖生命周期的接口
await builder.Services.AddModuleApplicationAsync<NetCoreTestModule>();

// 这样将不会自动依赖注入
await builder.Services.AddModuleApplicationAsync<NetCoreTestModule>(false);

var app = builder.Build();

// 执行这一步的时候就会先执行NetCoreTestModule里面的 OnApplicationShutdown,
// OnApplicationShutdownAsync =》OnApplicationShutdown方法
app.InitializeApplication();

app.Run();

自动依赖注入

// 如果没有取消自动注入的话,您只需要在实现类继承相应的接口即可 // 接口的名字和实现类型的名字必须基本一致,接口多加I其他的名字必须一致

IScopedDependency => services.AddScoped();

ISingletonDependency => service.AddSingleton();

ITransientDependency => service.AddTransient();

示例

// 接口
public interface IDemoService
{
    Task<string> GetAsync();

    Task UpdateAsync(Guid id,string data);
}

// 实现类
public class DemoService : IDemoService, ISingletonDependency
{
    public Task<string> GetAsync()
    {

        return Task.FromResult("ok");
    }

    public async Task UpdateAsync(Guid id, string data)
    {
        await Task.CompletedTask;
    }
}
// 只需要按照这个示例就可以完成注入了,必须是未忽略自动注入才会注入
// 建议按照abp官方的DDD实践去项目划分

测试

在test文件中存在简单的使用示例

About

模块注入模块引用 设计灵感来源于ABPModule,简化了很多没有必要的依赖,可自动扩展工具

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages