Ploch.Common.Serialization
2.0.1
dotnet add package Ploch.Common.Serialization --version 2.0.1
NuGet\Install-Package Ploch.Common.Serialization -Version 2.0.1
<PackageReference Include="Ploch.Common.Serialization" Version="2.0.1" />
paket add Ploch.Common.Serialization --version 2.0.1
#r "nuget: Ploch.Common.Serialization, 2.0.1"
// Install Ploch.Common.Serialization as a Cake Addin #addin nuget:?package=Ploch.Common.Serialization&version=2.0.1 // Install Ploch.Common.Serialization as a Cake Tool #tool nuget:?package=Ploch.Common.Serialization&version=2.0.1
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. |
.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.5.4)
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.
Version | Downloads | Last updated |
---|---|---|
2.0.1 | 349 | 1/9/2024 |