Ploch.Common.Serialization
3.0.0
dotnet add package Ploch.Common.Serialization --version 3.0.0
NuGet\Install-Package Ploch.Common.Serialization -Version 3.0.0
<PackageReference Include="Ploch.Common.Serialization" Version="3.0.0" />
<PackageVersion Include="Ploch.Common.Serialization" Version="3.0.0" />
<PackageReference Include="Ploch.Common.Serialization" />
paket add Ploch.Common.Serialization --version 3.0.0
#r "nuget: Ploch.Common.Serialization, 3.0.0"
#:package Ploch.Common.Serialization@3.0.0
#addin nuget:?package=Ploch.Common.Serialization&version=3.0.0
#tool nuget:?package=Ploch.Common.Serialization&version=3.0.0
Ploch.Common.Serialization
Overview
Ploch.Common.Serialization library provides a common interface for serialization and deserialization of objects.
Library also provides conversion of embedded object types.
Rationale
The main reason for this library is to provide a common interface for serialization and deserialization of objects using different serializers.
For example, if you want to switch from Newtonsoft.Json to System.Text.Json or YamlDotNet you would have to
re-implement all the serialization and deserialization logic. This library provides a way to avoid it.
Reasons for switching serializers may vary, but one of the examples is the support in System.Text.Json for a feature
that was not previously supported.
At the moment, the following serializers support is implemented:
- Newtonsoft Json.NET in the Ploch.Common.Serialization.NewtonsoftJson package,
- System.Text.Json in the Ploch.Common.Serialization.SystemTextJson package
Usage
Usage is quite straightforward:
You create an instance of the concrete serializer, optionally passing the settings, then call its methods:
var serializer = new ...;
var serialized = serializer.Serialize(yourObject);
var deserialized = serializer.Deserialize<YourType>(serialized);
To convert an embedded object type, you call the Convert method on the serializer instance.
For example:
// You have a type with an object property:
public record YourType(string SomeStrProperty, object SomeObjectProperty);
// You know that this type should be deserialized to a specific type:
var deserializedData = serializer.Convert<YourConcreteTypeOfObject>(deserialized.SomeObjectProperty);
| 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
- Dawn.Guard (>= 1.12.0)
- System.Threading.Tasks.Extensions (>= 4.6.3)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Ploch.Common.Serialization:
| Package | Downloads |
|---|---|
|
Ploch.Common.Serialiation.NewtonsoftJson
Common utility libraries. |
|
|
Ploch.Common.Serialization.SystemTextJson
Common utility libraries. |
GitHub repositories
This package is not used by any popular GitHub repositories.