Skip to content

Commit 855d5fc

Browse files
authored
Merge pull request #248 from MADE-Apps/feature/json-type-migration
#247 - Added JSON.NET Type migration binder
2 parents ae3218b + 85ddbf4 commit 855d5fc

File tree

12 files changed

+513
-3
lines changed

12 files changed

+513
-3
lines changed

MADE.NET.sln

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MADE.Data.Validation.Fluent
4747
EndProject
4848
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MADE.Data.Validation.FluentValidation.Tests", "tests\MADE.Data.Validation.FluentValidation.Tests\MADE.Data.Validation.FluentValidation.Tests.csproj", "{D8C1B3CC-B5BA-4946-944E-D898AB4DFF6E}"
4949
EndProject
50+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MADE.Data.Serialization", "src\MADE.Data.Serialization\MADE.Data.Serialization.csproj", "{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}"
51+
EndProject
52+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MADE.Data.Serialization.Tests", "tests\MADE.Data.Serialization.Tests\MADE.Data.Serialization.Tests.csproj", "{7D789D04-A010-4F11-91AD-B1B94A23BAE0}"
53+
EndProject
5054
Global
5155
GlobalSection(SolutionConfigurationPlatforms) = preSolution
5256
Ad-Hoc|Any CPU = Ad-Hoc|Any CPU
@@ -1199,6 +1203,118 @@ Global
11991203
{D8C1B3CC-B5BA-4946-944E-D898AB4DFF6E}.Release|x64.Build.0 = Release|Any CPU
12001204
{D8C1B3CC-B5BA-4946-944E-D898AB4DFF6E}.Release|x86.ActiveCfg = Release|Any CPU
12011205
{D8C1B3CC-B5BA-4946-944E-D898AB4DFF6E}.Release|x86.Build.0 = Release|Any CPU
1206+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
1207+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
1208+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
1209+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU
1210+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Ad-Hoc|ARM64.ActiveCfg = Debug|Any CPU
1211+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Ad-Hoc|ARM64.Build.0 = Debug|Any CPU
1212+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
1213+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
1214+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
1215+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
1216+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU
1217+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Ad-Hoc|x64.Build.0 = Debug|Any CPU
1218+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
1219+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
1220+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
1221+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.AppStore|Any CPU.Build.0 = Debug|Any CPU
1222+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.AppStore|ARM.ActiveCfg = Debug|Any CPU
1223+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.AppStore|ARM.Build.0 = Debug|Any CPU
1224+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.AppStore|ARM64.ActiveCfg = Debug|Any CPU
1225+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.AppStore|ARM64.Build.0 = Debug|Any CPU
1226+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
1227+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.AppStore|iPhone.Build.0 = Debug|Any CPU
1228+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
1229+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
1230+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.AppStore|x64.ActiveCfg = Debug|Any CPU
1231+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.AppStore|x64.Build.0 = Debug|Any CPU
1232+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.AppStore|x86.ActiveCfg = Debug|Any CPU
1233+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.AppStore|x86.Build.0 = Debug|Any CPU
1234+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
1235+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Debug|Any CPU.Build.0 = Debug|Any CPU
1236+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Debug|ARM.ActiveCfg = Debug|Any CPU
1237+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Debug|ARM.Build.0 = Debug|Any CPU
1238+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Debug|ARM64.ActiveCfg = Debug|Any CPU
1239+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Debug|ARM64.Build.0 = Debug|Any CPU
1240+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Debug|iPhone.ActiveCfg = Debug|Any CPU
1241+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Debug|iPhone.Build.0 = Debug|Any CPU
1242+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
1243+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
1244+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Debug|x64.ActiveCfg = Debug|Any CPU
1245+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Debug|x64.Build.0 = Debug|Any CPU
1246+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Debug|x86.ActiveCfg = Debug|Any CPU
1247+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Debug|x86.Build.0 = Debug|Any CPU
1248+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Release|Any CPU.ActiveCfg = Release|Any CPU
1249+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Release|Any CPU.Build.0 = Release|Any CPU
1250+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Release|ARM.ActiveCfg = Release|Any CPU
1251+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Release|ARM.Build.0 = Release|Any CPU
1252+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Release|ARM64.ActiveCfg = Release|Any CPU
1253+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Release|ARM64.Build.0 = Release|Any CPU
1254+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Release|iPhone.ActiveCfg = Release|Any CPU
1255+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Release|iPhone.Build.0 = Release|Any CPU
1256+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
1257+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
1258+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Release|x64.ActiveCfg = Release|Any CPU
1259+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Release|x64.Build.0 = Release|Any CPU
1260+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Release|x86.ActiveCfg = Release|Any CPU
1261+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90}.Release|x86.Build.0 = Release|Any CPU
1262+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
1263+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
1264+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
1265+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU
1266+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Ad-Hoc|ARM64.ActiveCfg = Debug|Any CPU
1267+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Ad-Hoc|ARM64.Build.0 = Debug|Any CPU
1268+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
1269+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
1270+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
1271+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
1272+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU
1273+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Ad-Hoc|x64.Build.0 = Debug|Any CPU
1274+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
1275+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
1276+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
1277+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.AppStore|Any CPU.Build.0 = Debug|Any CPU
1278+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.AppStore|ARM.ActiveCfg = Debug|Any CPU
1279+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.AppStore|ARM.Build.0 = Debug|Any CPU
1280+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.AppStore|ARM64.ActiveCfg = Debug|Any CPU
1281+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.AppStore|ARM64.Build.0 = Debug|Any CPU
1282+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
1283+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.AppStore|iPhone.Build.0 = Debug|Any CPU
1284+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
1285+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
1286+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.AppStore|x64.ActiveCfg = Debug|Any CPU
1287+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.AppStore|x64.Build.0 = Debug|Any CPU
1288+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.AppStore|x86.ActiveCfg = Debug|Any CPU
1289+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.AppStore|x86.Build.0 = Debug|Any CPU
1290+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
1291+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Debug|Any CPU.Build.0 = Debug|Any CPU
1292+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Debug|ARM.ActiveCfg = Debug|Any CPU
1293+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Debug|ARM.Build.0 = Debug|Any CPU
1294+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Debug|ARM64.ActiveCfg = Debug|Any CPU
1295+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Debug|ARM64.Build.0 = Debug|Any CPU
1296+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Debug|iPhone.ActiveCfg = Debug|Any CPU
1297+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Debug|iPhone.Build.0 = Debug|Any CPU
1298+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
1299+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
1300+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Debug|x64.ActiveCfg = Debug|Any CPU
1301+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Debug|x64.Build.0 = Debug|Any CPU
1302+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Debug|x86.ActiveCfg = Debug|Any CPU
1303+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Debug|x86.Build.0 = Debug|Any CPU
1304+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Release|Any CPU.ActiveCfg = Release|Any CPU
1305+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Release|Any CPU.Build.0 = Release|Any CPU
1306+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Release|ARM.ActiveCfg = Release|Any CPU
1307+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Release|ARM.Build.0 = Release|Any CPU
1308+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Release|ARM64.ActiveCfg = Release|Any CPU
1309+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Release|ARM64.Build.0 = Release|Any CPU
1310+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Release|iPhone.ActiveCfg = Release|Any CPU
1311+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Release|iPhone.Build.0 = Release|Any CPU
1312+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
1313+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
1314+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Release|x64.ActiveCfg = Release|Any CPU
1315+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Release|x64.Build.0 = Release|Any CPU
1316+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Release|x86.ActiveCfg = Release|Any CPU
1317+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0}.Release|x86.Build.0 = Release|Any CPU
12021318
EndGlobalSection
12031319
GlobalSection(SolutionProperties) = preSolution
12041320
HideSolutionNode = FALSE
@@ -1224,6 +1340,8 @@ Global
12241340
{C8DF10B0-D157-47CF-BD10-9EE1D06BEB9A} = {01380FB8-F8A7-4416-AABA-5407574B7723}
12251341
{BBAB544A-BFB2-4755-8F09-8E150D3638F3} = {01380FB8-F8A7-4416-AABA-5407574B7723}
12261342
{D8C1B3CC-B5BA-4946-944E-D898AB4DFF6E} = {69149D0F-BB09-411B-88F0-A1E845058D70}
1343+
{0ACCC377-5FA5-47D9-B6EF-7936F1038B90} = {01380FB8-F8A7-4416-AABA-5407574B7723}
1344+
{7D789D04-A010-4F11-91AD-B1B94A23BAE0} = {69149D0F-BB09-411B-88F0-A1E845058D70}
12271345
EndGlobalSection
12281346
GlobalSection(ExtensibilityGlobals) = postSolution
12291347
SolutionGuid = {3921AD86-E6C0-4436-8880-2D9EDFAD6151}

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,9 @@ As many developers know, projects like MADE.NET are built and maintained in spar
2828
| Collections | [![NuGet](https://img.shields.io/nuget/v/MADE.Collections)](https://www.nuget.org/packages/MADE.Collections/) | [![Nuget](https://img.shields.io/nuget/vpre/MADE.Collections.svg)](https://www.nuget.org/packages/MADE.Collections/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.Collections.svg)](https://www.nuget.org/packages/MADE.Collections) |
2929
| Data.Converters | [![NuGet](https://img.shields.io/nuget/v/MADE.Data.Converters)](https://www.nuget.org/packages/MADE.Data.Converters/) | [![NuGet](https://img.shields.io/nuget/vpre/MADE.Data.Converters)](https://www.nuget.org/packages/MADE.Data.Converters/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.Data.Converters.svg)](https://www.nuget.org/packages/MADE.Data.Converters) |
3030
| Data.EFCore | [![NuGet](https://img.shields.io/nuget/v/MADE.Data.EFCore)](https://www.nuget.org/packages/MADE.Data.EFCore/) | [![NuGet](https://img.shields.io/nuget/vpre/MADE.Data.EFCore)](https://www.nuget.org/packages/MADE.Data.EFCore/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.Data.EFCore.svg)](https://www.nuget.org/packages/MADE.Data.EFCore) |
31+
| Data.Serialization | [![NuGet](https://img.shields.io/nuget/v/MADE.Data.Serialization)](https://www.nuget.org/packages/MADE.Data.Serialization/) | [![NuGet](https://img.shields.io/nuget/vpre/MADE.Data.Serialization)](https://www.nuget.org/packages/MADE.Data.Serialization/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.Data.Serialization.svg)](https://www.nuget.org/packages/MADE.Data.Serialization) |
3132
| Data.Validation | [![NuGet](https://img.shields.io/nuget/v/MADE.Data.Validation)](https://www.nuget.org/packages/MADE.Data.Validation/) | [![NuGet](https://img.shields.io/nuget/vpre/MADE.Data.Validation)](https://www.nuget.org/packages/MADE.Data.Validation/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.Data.Validation.svg)](https://www.nuget.org/packages/MADE.Data.Validation) |
33+
| Data.Validation.FluentValidation | [![NuGet](https://img.shields.io/nuget/v/MADE.Data.Validation.FluentValidation)](https://www.nuget.org/packages/MADE.Data.Validation.FluentValidation/) | [![NuGet](https://img.shields.io/nuget/vpre/MADE.Data.Validation.FluentValidation)](https://www.nuget.org/packages/MADE.Data.Validation.FluentValidation/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.Data.Validation.FluentValidation.svg)](https://www.nuget.org/packages/MADE.Data.Validation.FluentValidation) |
3234
| Diagnostics | [![NuGet](https://img.shields.io/nuget/v/MADE.Diagnostics)](https://www.nuget.org/packages/MADE.Diagnostics/) | [![NuGet](https://img.shields.io/nuget/vpre/MADE.Diagnostics)](https://www.nuget.org/packages/MADE.Diagnostics/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.Diagnostics.svg)](https://www.nuget.org/packages/MADE.Diagnostics) |
3335
| Foundation | [![NuGet](https://img.shields.io/nuget/v/MADE.Foundation)](https://www.nuget.org/packages/MADE.Foundation/) | [![NuGet](https://img.shields.io/nuget/vpre/MADE.Foundation)](https://www.nuget.org/packages/MADE.Foundation/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.Foundation.svg)](https://www.nuget.org/packages/MADE.Foundation) |
3436
| Networking | [![NuGet](https://img.shields.io/nuget/v/MADE.Networking)](https://www.nuget.org/packages/MADE.Networking/) | [![NuGet](https://img.shields.io/nuget/vpre/MADE.Networking)](https://www.nuget.org/packages/MADE.Networking/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/MADE.Networking.svg)](https://www.nuget.org/packages/MADE.Networking) |
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
---
2+
uid: package-data-serialization
3+
title: Using the Data Serialization package
4+
---
5+
6+
# Using the Data Serialization package
7+
8+
The Data Serialization package provides a collection of helpers and extensions for data serialization in different types, e.g. JSON.
9+
10+
## Handling type changes in JSON objects serialized with JSON.NET with TypeNameHandling set to All
11+
12+
There are many ways to use JSON.NET in your applications to serialize and deserialize data. This includes the ability to set the `TypeNameHandling` property to `All` include your .NET type information within your serialized data.
13+
14+
This can come with challenges when you want to use the same data in different solutions, or when you want to perform refactors or data restructures in your codebase.
15+
16+
The `JsonTypeMigrationSerializationBinder` class provides a way to handle type changes in JSON objects serialized with JSON.NET, migrating from one type to another (whether known within your codebase or not).
17+
18+
Here's how to setup your application for migrating JSON objects from one type to another.
19+
20+
```csharp
21+
namespace App.Migrations
22+
{
23+
using MADE.Data.Serialization.Json;
24+
using MADE.Data.Serialization.Json.Binders;
25+
26+
public class JsonSerializer
27+
{
28+
public JsonSerializer()
29+
{
30+
JsonSerializerSettings.Default.TypeNameHandling = TypeNameHandling.All;
31+
JsonSerializerSettings.Default.Binder = new JsonTypeMigrationSerializationBinder(
32+
new JsonTypeMigration(typeof(OldType), typeof(NewType)),
33+
new JsonTypeMigration("App.Migrations", "App.Migrations.Data.OldDataType", typeof(NewType))
34+
);
35+
}
36+
37+
public T Deserialize<T>(string serializedJson)
38+
{
39+
return JsonConvert.DeserializeObject<T>(serializedJson);
40+
}
41+
}
42+
}
43+
```

docs/articles/intro.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,11 @@ dotnet add package MADE.Collections
2828
| MADE.Collections | [![NuGet](https://img.shields.io/nuget/v/MADE.Collections)](https://www.nuget.org/packages/MADE.Collections/) |
2929
| MADE.Data.Converters | [![NuGet](https://img.shields.io/nuget/v/MADE.Data.Converters)](https://www.nuget.org/packages/MADE.Data.Converters/) |
3030
| MADE.Data.EFCore | [![NuGet](https://img.shields.io/nuget/v/MADE.Data.EFCore)](https://www.nuget.org/packages/MADE.Data.EFCore/) |
31+
| MADE.Data.Serialization | [![NuGet](https://img.shields.io/nuget/v/MADE.Data.Serialization)](https://www.nuget.org/packages/MADE.Data.Serialization/) |
3132
| MADE.Data.Validation | [![NuGet](https://img.shields.io/nuget/v/MADE.Data.Validation)](https://www.nuget.org/packages/MADE.Data.Validation/) |
3233
| MADE.Data.Validation.FluentValidation | [![NuGet](https://img.shields.io/nuget/v/MADE.Data.Validation.FluentValidation)](https://www.nuget.org/packages/MADE.Data.Validation.FluentValidation/) |
3334
| MADE.Diagnostics | [![NuGet](https://img.shields.io/nuget/v/MADE.Diagnostics)](https://www.nuget.org/packages/MADE.Diagnostics/) |
35+
| MADE.Foundation | [![NuGet](https://img.shields.io/nuget/v/MADE.Foundation)](https://www.nuget.org/packages/MADE.Foundation/) |
3436
| MADE.Networking | [![NuGet](https://img.shields.io/nuget/v/MADE.Networking)](https://www.nuget.org/packages/MADE.Networking/) |
3537
| MADE.Runtime | [![NuGet](https://img.shields.io/nuget/v/MADE.Runtime)](https://www.nuget.org/packages/MADE.Runtime/) |
3638
| MADE.Testing | [![NuGet](https://img.shields.io/nuget/v/MADE.Testing)](https://www.nuget.org/packages/MADE.Testing/) |
@@ -87,6 +89,20 @@ It includes features such as:
8789

8890
</span>
8991

92+
#### Data.Serialization
93+
94+
The Data Serialization package provides a collection of helpers and extensions for data serialization in different types, e.g. JSON.
95+
96+
It includes features such as:
97+
98+
- JsonTypeMigrationSerializationBinder, for migrating type names within a serialized JSON object.
99+
100+
<span class="button">
101+
102+
[Discover Data.Serialization](features/data-serialization.md)
103+
104+
</span>
105+
90106
#### Data.Validation
91107

92108
The Data Validation package is designed to provide out-of-the-box data validation to applications built with C#.

docs/articles/toc.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
href: features/data-converters.md
99
- name: Data EF Core
1010
href: features/data-efcore.md
11+
- name: Data Serialization
12+
href: features/data-serialization.md
1113
- name: Data Validation
1214
href: features/data-validation.md
1315
- name: Diagnostics
@@ -25,4 +27,4 @@
2527
- name: Web
2628
href: features/web.md
2729
- name: Web MVC
28-
href: features/web-mvc.md
30+
href: features/web-mvc.md

docs/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ title: Make App Development Easier
122122
<div class="stat-container">
123123
<div class="stat-header">
124124
<span>
125-
275k+
125+
300k+
126126
</span>
127127
</div>
128128
<div class="stat-content">
@@ -138,7 +138,7 @@ title: Make App Development Easier
138138
<div class="stat-container">
139139
<div class="stat-header">
140140
<span>
141-
22
141+
27
142142
</span>
143143
</div>
144144
<div class="stat-content">

0 commit comments

Comments
 (0)