Skip to content

Library for working with modules. Define services and module dependencies in modules, then register them in DI, this will register them in the correct topological order and avoid double registration

License

Notifications You must be signed in to change notification settings

EmptyBucket/Modules

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Modules

Library for working with modules. Define services and module dependencies in modules, then register them in DI, this will register them in the correct topological order and avoid double registration

Nuget:

Usage

var serviceCollection = new ServiceCollection();
var configuration = new ConfigurationBuilder().Build();
// this will register the modules in topological order, i.e.: FirstDomainModule, FirstAppModule, SecondDomainModule, SecondAppModule, HostModule
serviceCollection.AddRootModule<HostModule>(configuration);

public class FirstDomainModule : ModuleBase
{
    public override void ConfigureServices(IServiceCollection serviceCollection, IConfiguration configuration)
    {
        // configure services
    }
}

public class SecondDomainModule : ModuleBase
{
}

public class FirstAppModule : ModuleBase
{
    public override void ConfigureDependencies(IModuleDependencyBuilder moduleDependencyBuilder)
    {
        moduleDependencyBuilder.DependOn<FirstDomainModule>();
    }
}

public class SecondAppModule : ModuleBase
{
    public override void ConfigureDependencies(IModuleDependencyBuilder moduleDependencyBuilder)
    {
        moduleDependencyBuilder
            .DependOn<FirstDomainModule>()
            .DependOn<SecondDomainModule>();
    }
}

public class HostModule : ModuleBase
{
    public override void ConfigureDependencies(IModuleDependencyBuilder moduleDependencyBuilder)
    {
        moduleDependencyBuilder
            .DependOn<FirstAppModule>()
            .DependOn<SecondAppModule>();
    }
}

About

Library for working with modules. Define services and module dependencies in modules, then register them in DI, this will register them in the correct topological order and avoid double registration

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages