Universal.CodeGeneration.CSharp
1.0.0
See the version list below for details.
dotnet add package Universal.CodeGeneration.CSharp --version 1.0.0
NuGet\Install-Package Universal.CodeGeneration.CSharp -Version 1.0.0
<PackageReference Include="Universal.CodeGeneration.CSharp" Version="1.0.0" />
<PackageVersion Include="Universal.CodeGeneration.CSharp" Version="1.0.0" />
<PackageReference Include="Universal.CodeGeneration.CSharp" />
paket add Universal.CodeGeneration.CSharp --version 1.0.0
#r "nuget: Universal.CodeGeneration.CSharp, 1.0.0"
#:package Universal.CodeGeneration.CSharp@1.0.0
#addin nuget:?package=Universal.CodeGeneration.CSharp&version=1.0.0
#tool nuget:?package=Universal.CodeGeneration.CSharp&version=1.0.0
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.
Support for UriBuilder generation and HTTP client generation using Universal.Common.Net.Http.HttpServiceClient/JsonHttpServiceClient.