Condor.Constants.Generator
0.0.4
dotnet add package Condor.Constants.Generator --version 0.0.4
NuGet\Install-Package Condor.Constants.Generator -Version 0.0.4
<PackageReference Include="Condor.Constants.Generator" Version="0.0.4" />
<PackageVersion Include="Condor.Constants.Generator" Version="0.0.4" />
<PackageReference Include="Condor.Constants.Generator" />
paket add Condor.Constants.Generator --version 0.0.4
#r "nuget: Condor.Constants.Generator, 0.0.4"
#:package Condor.Constants.Generator@0.0.4
#addin nuget:?package=Condor.Constants.Generator&version=0.0.4
#tool nuget:?package=Condor.Constants.Generator&version=0.0.4
Condor.Constants.Generator
This generator is used to genrate a custom template given as additionnal file
namespace Test.Grants;
[Constants("AllKeys")]
public static partial class CrudSample
{
public const string CanCreate = "can__create";
public const string CanRead = "can__read";
public const string CanUpdate = "can__update";
public const string CanDelete = "can__delete";
}
Additional file : AllKeys.mustache
/* auto-generated */
namespace {{OutputNamespace}}
{
public static partial class {{ClassName}}
{
public static IEnumerable<string> GetAll()
{
{{#each Map}}
yield return {{{Member.MemberName}}};
{{/each}}
}
}
}
Generated file is CrudSample.AllKeys.generated.cs
/* auto-generated */
namespace Test.Grants
{
public static partial class CrudSample
{
public static IEnumerable<string> GetAll()
{
yield return CanCreate;
yield return CanRead;
yield return CanUpdate;
yield return CanDelete;
}
}
}
Partial template keys defined on fields can enpower conditions in templates to make variance on generated output.
Generator data
The decorated class does not need to be partial, it depends about the template purpose. The decorated class with ConstantsAttribute is generated using the follow informations :
ContantsInfo
| Property | Description |
| -------- | ----------- |
| OutputNamespace | Same as decorated class |
| ClassName | Same as decorated class |
| Map | MemberInfo collection containing all the constants fields found in decorated class |
MemberInfo
| Property | Description |
|---|---|
| MemberName | Name of the field |
| IsNullable | boolean inidcating if field type is nullable type |
| MemberType | type of this field |
| Attributes | coolection of AttributeInfo decorating the target field |
| Partials | array of key defined by the |
Limitations
There is no type check on constants fields.
| 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. 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.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.