ConnectingApps.SmartInject
2.0.1-preview
See the version list below for details.
dotnet add package ConnectingApps.SmartInject --version 2.0.1-preview
NuGet\Install-Package ConnectingApps.SmartInject -Version 2.0.1-preview
<PackageReference Include="ConnectingApps.SmartInject" Version="2.0.1-preview" />
paket add ConnectingApps.SmartInject --version 2.0.1-preview
#r "nuget: ConnectingApps.SmartInject, 2.0.1-preview"
// Install ConnectingApps.SmartInject as a Cake Addin
#addin nuget:?package=ConnectingApps.SmartInject&version=2.0.1-preview&prerelease
// Install ConnectingApps.SmartInject as a Cake Tool
#tool nuget:?package=ConnectingApps.SmartInject&version=2.0.1-preview&prerelease
SmartInject
SmartInject is a package to simplify dependency injection in .NET . For example, do you know how to deal with circular depencies? You may want to consider a redesign of your application. However, there is a quicker way:
Lazy Injection
Assume we have two classes. Instances of these classes need to communicate with each other without knowing each other. You may have experienced this Exception:
System.InvalidOperationException: A circular dependency was detected for the service of type ...
To solve this problem, the code will be like this:
public class Something : ISomething
{
private readonly Lazy<ISomethingElse> _somethingElse;
public Something(Lazy<ISomethingElse> somethingElse)
{
_somethingElse = somethingElse;
}
}
and
public class SomethingElse : ISomethingElse
{
private readonly Lazy<ISomething> _something;
public SomethingElse(Lazy<ISomething> something)
{
_something = something;
}
}
All you need to do now is to add the collowing line of code to your Program.cs
builder.Services.AddLazySingleton<ISomething, Something>();
Alternatively, you can use AddLazyTransient
or AddLazyScoped
instead.
Do not forget use the following namespace line:
using ConnectingApps.SmartInject;
Health Check Result in Json
When adding a health check to your .NET application you typically, get a result like Healthy
after doing a request.
The response is not very detailed, which can be a problem when there is something wrong.
However, instead of getting Healthy
as a response, you can get a detailed json response instead:
{
"status": "Healthy",
"results": {
"ExampleHealthCheck": {
"status": "Healthy",
"description": "Example health check is healthy",
"data": {
"exampleDataKey": "exampleDataValue"
}
}
}
}
Achieving this is very simple. Instead of adding a health check like this:
app.MapHealthChecks("/healthz");
you'll add a health check like this:
app.MapHealthChecks("/healthz", new HealthCheckOptions
{
ResponseWriter = HealthCheckResponseWriters.WriteJsonResponse
});
with this namespace added:
using ConnectingApps.SmartInject;
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 | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. 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.0
- Microsoft.Bcl.AsyncInterfaces (>= 7.0.0 && <= 8.2.0)
- Microsoft.CSharp (>= 4.7.0)
- Microsoft.Extensions.Diagnostics.HealthChecks (>= 7.0.11 && <= 8.2.0)
- System.Text.Json (>= 4.6.0 && <= 8.2.0)
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.2 | 1,648 | 10/5/2023 |
2.0.1-preview | 83 | 10/4/2023 |
1.0.2 | 245 | 10/3/2023 |
1.0.1-preview | 96 | 10/3/2023 |
Initial version