Salt.AutoService
0.0.1
dotnet add package Salt.AutoService --version 0.0.1
NuGet\Install-Package Salt.AutoService -Version 0.0.1
<PackageReference Include="Salt.AutoService" Version="0.0.1" />
paket add Salt.AutoService --version 0.0.1
#r "nuget: Salt.AutoService, 0.0.1"
// Install Salt.AutoService as a Cake Addin
#addin nuget:?package=Salt.AutoService&version=0.0.1
// Install Salt.AutoService as a Cake Tool
#tool nuget:?package=Salt.AutoService&version=0.0.1
AutoService - Automatic Service Discovery for .NET DI
Hello! This is AutoService, a .NET library for discovering services to be attached into a IServiceCollection
for
dependency injection.
How to use?
AutoService is really easy to use, just call the AddAutoService
method for all the assemblies you want to load
services from:
// In .NET 6, startup is gone, so the Program class is used.
builder.Services.AddAutoService<Program>();
Once that call is done, all you need to do is decorate your service classes with the Lifetime
attribute:
using AutoService;
[Lifetime(Lifetime.Singleton)]
public class MyService // : IMyService
{
// Implementation...
}
And AutoService will take care of them all; please check the Tests and Example application to have a better idea of how it works.
Why?
I use this piece of code in small projects that never see the light and became tired of copying the same snippet over and over, so I thought that I could make this into a library that everybody can use.
That's all folks, go check the code :^)
TODOs
- Write good tests (someone teach me pls).
- Ensure that only the interfaces in the selected type are selected.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
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 | |
---|---|---|---|
0.0.1 | 431 | 1/27/2022 |