Pure.RelationalSchema.Abstractions.Serialization.System
0.1.0-preview.1.1.0
dotnet add package Pure.RelationalSchema.Abstractions.Serialization.System --version 0.1.0-preview.1.1.0
NuGet\Install-Package Pure.RelationalSchema.Abstractions.Serialization.System -Version 0.1.0-preview.1.1.0
<PackageReference Include="Pure.RelationalSchema.Abstractions.Serialization.System" Version="0.1.0-preview.1.1.0" />
<PackageVersion Include="Pure.RelationalSchema.Abstractions.Serialization.System" Version="0.1.0-preview.1.1.0" />
<PackageReference Include="Pure.RelationalSchema.Abstractions.Serialization.System" />
paket add Pure.RelationalSchema.Abstractions.Serialization.System --version 0.1.0-preview.1.1.0
#r "nuget: Pure.RelationalSchema.Abstractions.Serialization.System, 0.1.0-preview.1.1.0"
#:package Pure.RelationalSchema.Abstractions.Serialization.System@0.1.0-preview.1.1.0
#addin nuget:?package=Pure.RelationalSchema.Abstractions.Serialization.System&version=0.1.0-preview.1.1.0&prerelease
#tool nuget:?package=Pure.RelationalSchema.Abstractions.Serialization.System&version=0.1.0-preview.1.1.0&prerelease
Pure.RelationalSchema.Abstractions.Serialization.System
System.Text.Json converters for Pure.RelationalSchema abstract types — plug-and-play serialization for ISchema, ITable, IColumn, IColumnType, IForeignKey, and IIndex.
Overview
Pure.RelationalSchema.Abstractions.Serialization.System provides a set of System.Text.Json JsonConverter implementations that bridge the gap between the interface-typed Pure.RelationalSchema model and JSON serialization. Because the domain model exposes only interfaces (ISchema, ITable, etc.), the standard System.Text.Json serializer cannot resolve a concrete type at deserialization time — these converters handle that mapping explicitly.
All converters read and write via the concrete types from Pure.RelationalSchema and are collected in a single RelationalSchemaConverters enumerable for convenient bulk registration.
Converters
| Class | Handles | Description |
|---|---|---|
ColumnConverter |
IColumn |
Reads/writes via Column(name, type) |
ColumnTypeConverter |
IColumnType |
Serializes as the type's name string; deserializes by matching against all known column types |
ForeignKeyConverter |
IForeignKey |
Reads/writes via ForeignKey(referencingTable, referencingColumns, referencedTable, referencedColumns) |
IndexConverter |
IIndex |
Reads/writes via Index(isUnique, columns) |
SchemaConverter |
ISchema |
Reads/writes via Schema(name, tables, foreignKeys) |
TableConverter |
ITable |
Reads/writes via Table(name, columns, indexes) |
RelationalSchemaConverters |
— | IEnumerable<JsonConverter> yielding all six converters above |
Dependencies
Pure.RelationalSchema— concrete implementations of the relational schema domain model (Column,Table,Schema,ForeignKey,Index, and allIColumnTypevariants)
Target Frameworks
- .NET 7
- .NET 8
- .NET 9
- .NET 10
Installation
dotnet add package Pure.RelationalSchema.Abstractions.Serialization.System
Usage
Register all converters at once via RelationalSchemaConverters:
using System.Text.Json;
using Pure.RelationalSchema.Abstractions.Schema;
using Pure.RelationalSchema.Abstractions.Serialization.System;
var options = new JsonSerializerOptions();
foreach (JsonConverter converter in new RelationalSchemaConverters())
options.Converters.Add(converter);
string json = JsonSerializer.Serialize(schema, options);
ISchema deserialized = JsonSerializer.Deserialize<ISchema>(json, options)!;
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net7.0 is compatible. 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 is compatible. 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 is compatible. 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. |
-
net10.0
- Pure.RelationalSchema (>= 2.1.0)
-
net7.0
- Pure.RelationalSchema (>= 2.1.0)
-
net8.0
- Pure.RelationalSchema (>= 2.1.0)
-
net9.0
- Pure.RelationalSchema (>= 2.1.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 |
|---|---|---|
| 0.1.0-preview.1.1.0 | 58 | 10/22/2026 |
| 0.1.0-preview.1.0.3 | 179 | 8/4/2026 |
| 0.1.0-preview.1.0.2 | 131 | 6/17/2026 |
| 0.1.0-preview.1.0.1 | 110 | 5/28/2026 |
| 0.1.0-preview.1.0.0 | 180 | 5/8/2026 |
| 0.1.0-preview.0.2.0 | 658 | 2/23/2026 |
| 0.1.0-preview.0.1.0 | 89 | 2/23/2026 |