Universal.CodeGeneration.CSharp
1.1.1
dotnet add package Universal.CodeGeneration.CSharp --version 1.1.1
NuGet\Install-Package Universal.CodeGeneration.CSharp -Version 1.1.1
<PackageReference Include="Universal.CodeGeneration.CSharp" Version="1.1.1" />
<PackageVersion Include="Universal.CodeGeneration.CSharp" Version="1.1.1" />
<PackageReference Include="Universal.CodeGeneration.CSharp" />
paket add Universal.CodeGeneration.CSharp --version 1.1.1
#r "nuget: Universal.CodeGeneration.CSharp, 1.1.1"
#:package Universal.CodeGeneration.CSharp@1.1.1
#addin nuget:?package=Universal.CodeGeneration.CSharp&version=1.1.1
#tool nuget:?package=Universal.CodeGeneration.CSharp&version=1.1.1
Universal.CodeGeneration.CSharp
A library for generating C# source code from various specifications, specializing in strongly-typed HTTP clients and URI builders.
Classes
HttpServiceClientGenerator
Generates complete, strongly-typed HTTP service client code from API specifications (such as OpenAPI/Swagger). It handles the generation of methods, request/response models, enums, and hierarchical resource navigation.
// Parse the OpenAPI JSON
string json = File.ReadAllText("openapi.json");
var spec = HttpServiceClientGenerator.ApiSpecification.FromOpenApi(json);
// Configure generation options
var options = new HttpServiceClientGenerator.Options
{
BaseClass = HttpServiceClientGenerator.BaseClientType.JsonHttpServiceClient,
GenerateModelClasses = true,
UseHierarchicalResources = true,
JsonSerializer = HttpServiceClientGenerator.JsonSerializerType.SystemTextJson
};
// Generate the code
var generator = new HttpServiceClientGenerator("MyApi.Client", "ApiClient", options);
string sourceCode = generator.Generate(spec);
UriBuilderGenerator
Generates strongly-typed UriBuilder code from route definitions. This allows for type-safe URL construction based on defined API paths, supporting both fluent and flat API styles.
// Define routes manually or parse from OpenAPI
var routes = new List<UriBuilderGenerator.ApiRoute>
{
new UriBuilderGenerator.ApiRoute { Path = "users/{userId:int}/orders" },
new UriBuilderGenerator.ApiRoute { Path = "products/{category}/{id}" }
};
var options = new UriBuilderGenerator.Options
{
UseFluentGeneration = true,
FluentOptions = new UriBuilderGenerator.FluentGenerationOptions
{
UseNestedNamespaces = true,
CollapseIdMethods = true
}
};
var generator = new UriBuilderGenerator("MyNamespace", "MyApiRoutes", options);
string sourceCode = generator.Generate(routes);
ObjectExtensions
Extensions for converting runtime objects into their C# code initialization string representation. Useful for meta-programming and generating code that initializes objects with specific states.
// Simple types
int number = 42;
string numberCode = number.ToInitializerString(); // "42"
// Collections
var list = new List<string> { "A", "B" };
string listCode = list.ToInitializerString();
// "new List<string>() { "A", "B" }"
// Complex objects
var data = new { Id = 1, CreatedAt = DateTime.Now };
string objectCode = data.ToInitializerString();
// Generates object initialization syntax recursively
| 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
- System.Text.Json (>= 10.0.0)
- Universal.Common.Reflection (>= 2.1.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Fixed generation for logically no-content responses.