Core Classes#
The library relies on two core classes:
ServiceCollection: class is responsible for registering services and building service provider
ServiceProvider: class is responsible for delivering real services and managing its lifetime
Examples/Guides/Basic#
#include <SevenBit/DI.hpp>
using namespace sb::di;
struct ServiceA
{
};
struct ServiceB
{
};
struct ServiceC
{
};
int main()
{
// Service registration
ServiceCollection services;
services.addSingleton<ServiceA>();
services.addSingleton<ServiceB>();
services.addSingleton<ServiceC>();
ServiceProvider provider = services.buildServiceProvider();
// Accessing services
auto &serviceA = provider.getService<ServiceA>();
auto &serviceB = provider.getService<ServiceB>();
auto &serviceC = provider.getService<ServiceC>();
return 0;
}