DependencyInjection.SourceGenerator.LightInject
1.2.1
See the version list below for details.
dotnet add package DependencyInjection.SourceGenerator.LightInject --version 1.2.1
NuGet\Install-Package DependencyInjection.SourceGenerator.LightInject -Version 1.2.1
<PackageReference Include="DependencyInjection.SourceGenerator.LightInject" Version="1.2.1" />
paket add DependencyInjection.SourceGenerator.LightInject --version 1.2.1
#r "nuget: DependencyInjection.SourceGenerator.LightInject, 1.2.1"
// Install DependencyInjection.SourceGenerator.LightInject as a Cake Addin #addin nuget:?package=DependencyInjection.SourceGenerator.LightInject&version=1.2.1 // Install DependencyInjection.SourceGenerator.LightInject as a Cake Tool #tool nuget:?package=DependencyInjection.SourceGenerator.LightInject&version=1.2.1
DependencyInjection.SourceGenerator.LightInject
Register services using attributes instead of registering in code.
Usage
Add the "Register" attribute to the class you want to register. The attribute takes a type and a lifetime. The type is the type you want to register and the lifetime is the lifetime of the service. The lifetime is optional and defaults to Transient.
var services = new ServiceCollection();
services.AddMyProject();
### LightInject
```csharp
[Register(ServiceName = "ServiceName", Lifetime = Lifetime.Singleton)]
public class ExampleService : IExampleService
{
public string GetExample()
{
return "Example";
}
}
public interface IExampleService
{
string GetExample();
}
Generates a class CompositionRoot
public class CompositionRoot : ICompositionRoot
{
public static void Compose(IServiceRegistry serviceRegistry)
{
serviceRegistry.Register<IExampleService, ExampleService>("ServiceName", new PerContainerLifetime());
}
}
If you already have a class CompositionRoot defined, the generated class will be made partial. Remeber to make your CompositionRoot partial as well. It will also call a method RegisterServices on the existing CompositionRoot class (this must be defined).
public partial class CompositionRoot : ICompositionRoot
{
public static void Compose(IServiceRegistry serviceRegistry)
{
RegisterServices(serviceRegistry);
serviceRegistry.Register<IExampleService, ExampleService>("ServiceName", new PerContainerLifetime());
}
}
The final existing CompositionRoot class must look like this:
public partial class CompositionRoot
{
public void RegisterServices(IServiceRegistry serviceRegistry)
{
// Register services here
}
}
Lifetime
The lifetime is an enum with the following values:
- Transient
- Scoped
- Singleton
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- DependencyInjection.SourceGenerator.Contracts (>= 1.2.1)
- LightInject (>= 6.6.4)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
2.0.0 | 127 | 8/30/2024 |
1.6.0 | 206 | 2/14/2024 |
1.5.1 | 198 | 1/15/2024 |
1.5.0 | 137 | 1/15/2024 |
1.4.3 | 157 | 1/10/2024 |
1.4.2 | 126 | 1/10/2024 |
1.4.1 | 139 | 1/9/2024 |
1.4.0 | 140 | 1/9/2024 |
1.3.3 | 155 | 1/8/2024 |
1.3.2 | 123 | 1/8/2024 |
1.3.1 | 125 | 1/8/2024 |
1.3.0 | 137 | 1/8/2024 |
1.2.2 | 156 | 1/8/2024 |
1.2.2-alpha3 | 91 | 1/8/2024 |
1.2.2-alpha2 | 131 | 1/8/2024 |
1.2.1 | 119 | 1/5/2024 |
1.2.1-alpha6 | 168 | 1/5/2024 |
1.2.1-alpha5 | 96 | 1/5/2024 |
1.2.1-alpha2 | 98 | 1/5/2024 |
1.2.1-alpha1 | 134 | 1/5/2024 |
1.2.0 | 120 | 1/5/2024 |
1.1.2 | 136 | 1/5/2024 |
1.1.1 | 105 | 1/5/2024 |
1.1.0 | 161 | 1/5/2024 |
1.0.2 | 146 | 1/5/2024 |
1.0.1 | 133 | 1/4/2024 |
1.0.0 | 143 | 1/4/2024 |