vitali-s / SourceBit.Inject

SourceBit.Inject

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SourceBit.Inject

This project grows from our internal dependency injection container based on attributes. Now it rewrites to support registration and autowiring. The focus of the container is simplicity and performance.

To register all assemblies types as registered interfaces with single instance life styles:

var container = new Container();
container.Register(Assembly.GetExecutingAssembly()).AsSingleInstance();
var service = container.Resolve<ISimpleService>();

Per dependency registration:

var container = new Container();
container.Register(Assembly.GetExecutingAssembly()).AsPerDependencyInstance();
var service = container.Resolve<ISimpleService>();

Register service:

var container = new Container();
container.Register<Service, IService>().AsSingleInstance();
container.Resolve<IService>();

Attribute based registration:

var container = new Container();
container.RegisterByAttributes(Assembly.GetExecutingAssembly());

[Inject]
public class SimpleService : ISimpleService
{

[Inject(InjectType.AsSelf)]
public class SelfSimpleService
{

[Inject(LifeTypes.PerDependency)]
public class PerDependencySimpleService : IPerDependencySimpleService
{

About

SourceBit.Inject


Languages

Language:C# 92.1%Language:PowerShell 7.6%Language:Shell 0.3%