EnvMapper 1.0.6
dotnet add package EnvMapper --version 1.0.6
NuGet\Install-Package EnvMapper -Version 1.0.6
<PackageReference Include="EnvMapper" Version="1.0.6" />
<PackageVersion Include="EnvMapper" Version="1.0.6" />
<PackageReference Include="EnvMapper" />
paket add EnvMapper --version 1.0.6
#r "nuget: EnvMapper, 1.0.6"
#:package EnvMapper@1.0.6
#addin nuget:?package=EnvMapper&version=1.0.6
#tool nuget:?package=EnvMapper&version=1.0.6
EnvMapper
A .NET library to map environment variables to a C# object. This is useful when deploying to containerized environments where environment variables may be injected before starting up.
Installation
Available on NuGet
Visual Studio:
PM> Install-Package EnvMapper
.NET CLI:
dotnet add package EnvMapper
Usage
Load env file
MapConfiguration() will automatically search for environment variables and map them to a class decorated with System.Runtime.Serialization.DataMember attributes. This supports overriding using the Name and IsRequired properties of the DataMemberAttribute.
var config = EnvMapper.Env.MapConfiguration<TType>();
If properties that are marked as required are not found or are of the wrong type (ie a string instead of an int), a EnvMapperException will be thrown, which contains a list of error properties.
Example
Given the following example class:
[DataContract]
public class TestConfiguration
{
[DataMember(Name="Foo", IsRequired = true)]
public string? Foo { get; set; }
[DataMember]
public string? Bar { get; set; }
[DataMember(Name="Override")]
public string? OtherField { get; set; }
}
The following can be used to access the variables that are present as environment variables:
var config = EnvMapper.Env.MapConfiguration<TestConfiguration>();
Console.WriteLine($"Foo={config.Foo}");//This must be present
Console.WriteLine($"Bar={config.Bar}");//This may be present
Console.WriteLine($"Otherfield={config.OtherField}");//This may be present
Note: in the above example the variables that will be checked are Foo, Bar, and Override. If there is an environment variable OtherField, the reader will not check that as the DataMember signified on the variable should be Override.
| 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 is compatible. 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.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
- No dependencies.
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.