jab
jab copied to clipboard
C# Source Generator based dependency injection container implementation.
Hi, I've been playing around with the new named services feature and thought it could useful for resolving relative URIs into absolute URIs. Before named services this would have been...
Currently, **Jab** uses runtime checks to check if the newly created instance is a `IDisposable` or `IAsyncDisposable`, this could be done by the **Jab** in compile time improving the runtime...
Currently, **Jab** uses runtime checks to find the correct _service factory_ inside `GetService`, this could be done by the Jab in compile time improving the runtime performance. So instead of...
Currently, Jab uses `locks` to guarantee Singleton is only created one time. But alternative `Lazy` is a faster alternative to `lock`. Instead of ```csharp private Jab.Performance.Basic.Singleton.Singleton1? _ISingleton1; Jab.Performance.Basic.Singleton.ISingleton1 IServiceProvider.GetService() {...
- Add many new benchmarks - with many calls, with many classes - Singleton, Transient, Scoped, Mixed, Complex with simple and deep dependences - Add all benchmark results to 'docs/benchmark'...
If we could make IServiceProvider interface public, it would be easier to check if ServiceProvider can resolve particular service, or not, instead of catching exception.
I'm having issues with modules in combination with registering both service type and implementation type. In https://github.com/pakrym/jab/issues/97 a very similar issue is raised (proposed solution is to change Jab module...
## Problem I have the scenario where I want to decide at runtime which service to inject. ```csharp public interface IExampleService; public class ExampleServiceA : IExampleService; public class ExampleServiceB :...
As .NET Core 3.x has reached end of life, kindly remove it from the lib.