Skip to content

Commit 701cb33

Browse files
committed
Add custom map key. Issue #175.
This commit adds new configuration SerializationContext.DictionarySerializationOptions.KeyTransformer which allows tranformation of keys of map based serialization. DictionaryKeyTransformers class contains typical transformers, currently there is a lower-casing transformer.
1 parent 74543fc commit 701cb33

34 files changed

Lines changed: 555 additions & 7 deletions

File tree

src/MsgPack.Net35/MsgPack.Net35.csproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -510,6 +510,12 @@
510510
<Compile Include="..\MsgPack\Serialization\DefaultSerializers\UnixEpocFileTimeMessagePackSerializer.cs">
511511
<Link>Serialization\DefaultSerializers\UnixEpocFileTimeMessagePackSerializer.cs</Link>
512512
</Compile>
513+
<Compile Include="..\MsgPack\Serialization\DictionaryKeyTransformers.cs">
514+
<Link>Serialization\DictionaryKeyTransformers.cs</Link>
515+
</Compile>
516+
<Compile Include="..\MsgPack\Serialization\DictionarySerlaizationOptions.cs">
517+
<Link>Serialization\DictionarySerlaizationOptions.cs</Link>
518+
</Compile>
513519
<Compile Include="..\MsgPack\Serialization\EmitterFlavor.cs">
514520
<Link>Serialization\EmitterFlavor.cs</Link>
515521
</Compile>

src/MsgPack.Net45/MsgPack.Net45.csproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -536,6 +536,12 @@
536536
<Compile Include="..\MsgPack\Serialization\DefaultSerializers\UnixEpocFileTimeMessagePackSerializer.cs">
537537
<Link>Serialization\DefaultSerializers\UnixEpocFileTimeMessagePackSerializer.cs</Link>
538538
</Compile>
539+
<Compile Include="..\MsgPack\Serialization\DictionaryKeyTransformers.cs">
540+
<Link>Serialization\DictionaryKeyTransformers.cs</Link>
541+
</Compile>
542+
<Compile Include="..\MsgPack\Serialization\DictionarySerlaizationOptions.cs">
543+
<Link>Serialization\DictionarySerlaizationOptions.cs</Link>
544+
</Compile>
539545
<Compile Include="..\MsgPack\Serialization\EmitterFlavor.cs">
540546
<Link>Serialization\EmitterFlavor.cs</Link>
541547
</Compile>

src/MsgPack.Silverlight.5/MsgPack.Silverlight.5.csproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -416,6 +416,12 @@
416416
<Compile Include="..\MsgPack\Serialization\DefaultSerializers\UnixEpocDateTimeMessagePackSerializer.cs">
417417
<Link>Serialization\DefaultSerializers\UnixEpocDateTimeMessagePackSerializer.cs</Link>
418418
</Compile>
419+
<Compile Include="..\MsgPack\Serialization\DictionaryKeyTransformers.cs">
420+
<Link>Serialization\DictionaryKeyTransformers.cs</Link>
421+
</Compile>
422+
<Compile Include="..\MsgPack\Serialization\DictionarySerlaizationOptions.cs">
423+
<Link>Serialization\DictionarySerlaizationOptions.cs</Link>
424+
</Compile>
419425
<Compile Include="..\MsgPack\Serialization\EmitterFlavor.cs">
420426
<Link>Serialization\EmitterFlavor.cs</Link>
421427
</Compile>

src/MsgPack.Silverlight.WindowsPhone/MsgPack.Silverlight.WindowsPhone.csproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -482,6 +482,12 @@
482482
<Compile Include="..\MsgPack\Serialization\DefaultSerializers\UnixEpocFileTimeMessagePackSerializer.cs">
483483
<Link>Serialization\DefaultSerializers\UnixEpocFileTimeMessagePackSerializer.cs</Link>
484484
</Compile>
485+
<Compile Include="..\MsgPack\Serialization\DictionaryKeyTransformers.cs">
486+
<Link>Serialization\DictionaryKeyTransformers.cs</Link>
487+
</Compile>
488+
<Compile Include="..\MsgPack\Serialization\DictionarySerlaizationOptions.cs">
489+
<Link>Serialization\DictionarySerlaizationOptions.cs</Link>
490+
</Compile>
485491
<Compile Include="..\MsgPack\Serialization\EmitterFlavor.cs">
486492
<Link>Serialization\EmitterFlavor.cs</Link>
487493
</Compile>

src/MsgPack.Unity.Full/MsgPack.Unity.Full.csproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -395,6 +395,12 @@
395395
<Compile Include="..\MsgPack\Serialization\DefaultSerializers\UnixEpocDateTimeMessagePackSerializer.cs">
396396
<Link>Serialization\DefaultSerializers\UnixEpocDateTimeMessagePackSerializer.cs</Link>
397397
</Compile>
398+
<Compile Include="..\MsgPack\Serialization\DictionaryKeyTransformers.cs">
399+
<Link>Serialization\DictionaryKeyTransformers.cs</Link>
400+
</Compile>
401+
<Compile Include="..\MsgPack\Serialization\DictionarySerlaizationOptions.cs">
402+
<Link>Serialization\DictionarySerlaizationOptions.cs</Link>
403+
</Compile>
398404
<Compile Include="..\MsgPack\Serialization\EmitterFlavor.cs">
399405
<Link>Serialization\EmitterFlavor.cs</Link>
400406
</Compile>

src/MsgPack.Unity/MsgPack.Unity.csproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -404,6 +404,12 @@
404404
<Compile Include="..\MsgPack\Serialization\DefaultSerializers\UnixEpocDateTimeMessagePackSerializer.cs">
405405
<Link>Serialization\DefaultSerializers\UnixEpocDateTimeMessagePackSerializer.cs</Link>
406406
</Compile>
407+
<Compile Include="..\MsgPack\Serialization\DictionaryKeyTransformers.cs">
408+
<Link>Serialization\DictionaryKeyTransformers.cs</Link>
409+
</Compile>
410+
<Compile Include="..\MsgPack\Serialization\DictionarySerlaizationOptions.cs">
411+
<Link>Serialization\DictionarySerlaizationOptions.cs</Link>
412+
</Compile>
407413
<Compile Include="..\MsgPack\Serialization\EmitterFlavor.cs">
408414
<Link>Serialization\EmitterFlavor.cs</Link>
409415
</Compile>

src/MsgPack.Uwp/MsgPack.Uwp.csproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -494,6 +494,12 @@
494494
<Compile Include="..\MsgPack\Serialization\DefaultSerializers\UnixEpocFileTimeMessagePackSerializer.cs">
495495
<Link>Serialization\DefaultSerializers\UnixEpocFileTimeMessagePackSerializer.cs</Link>
496496
</Compile>
497+
<Compile Include="..\MsgPack\Serialization\DictionaryKeyTransformers.cs">
498+
<Link>Serialization\DictionaryKeyTransformers.cs</Link>
499+
</Compile>
500+
<Compile Include="..\MsgPack\Serialization\DictionarySerlaizationOptions.cs">
501+
<Link>Serialization\DictionarySerlaizationOptions.cs</Link>
502+
</Compile>
497503
<Compile Include="..\MsgPack\Serialization\EmitterFlavor.cs">
498504
<Link>Serialization\EmitterFlavor.cs</Link>
499505
</Compile>

src/MsgPack.Xamarin.Android/MsgPack.Xamarin.Android.csproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -416,6 +416,12 @@
416416
<Compile Include="..\MsgPack\Serialization\DefaultSerializers\UnixEpocDateTimeMessagePackSerializer.cs">
417417
<Link>Serialization\DefaultSerializers\UnixEpocDateTimeMessagePackSerializer.cs</Link>
418418
</Compile>
419+
<Compile Include="..\MsgPack\Serialization\DictionaryKeyTransformers.cs">
420+
<Link>Serialization\DictionaryKeyTransformers.cs</Link>
421+
</Compile>
422+
<Compile Include="..\MsgPack\Serialization\DictionarySerlaizationOptions.cs">
423+
<Link>Serialization\DictionarySerlaizationOptions.cs</Link>
424+
</Compile>
419425
<Compile Include="..\MsgPack\Serialization\EmitterFlavor.cs">
420426
<Link>Serialization\EmitterFlavor.cs</Link>
421427
</Compile>

src/MsgPack.Xamarin.iOS/MsgPack.Xamarin.iOS.csproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -413,6 +413,12 @@
413413
<Compile Include="..\MsgPack\Serialization\DefaultSerializers\UnixEpocDateTimeMessagePackSerializer.cs">
414414
<Link>Serialization\DefaultSerializers\UnixEpocDateTimeMessagePackSerializer.cs</Link>
415415
</Compile>
416+
<Compile Include="..\MsgPack\Serialization\DictionaryKeyTransformers.cs">
417+
<Link>Serialization\DictionaryKeyTransformers.cs</Link>
418+
</Compile>
419+
<Compile Include="..\MsgPack\Serialization\DictionarySerlaizationOptions.cs">
420+
<Link>Serialization\DictionarySerlaizationOptions.cs</Link>
421+
</Compile>
416422
<Compile Include="..\MsgPack\Serialization\EmitterFlavor.cs">
417423
<Link>Serialization\EmitterFlavor.cs</Link>
418424
</Compile>

src/MsgPack/MsgPack.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,8 @@
256256
<Compile Include="Serialization\DefaultSerializers\System_Security_Cryptography_HashAlgorithmNameMessagePackSerializer.cs" />
257257
<Compile Include="Serialization\DefaultSerializers\UnixEpocDateTimeMessagePackSerializer.cs" />
258258
<Compile Include="Serialization\DefaultSerializers\UnixEpocFileTimeMessagePackSerializer.cs" />
259+
<Compile Include="Serialization\DictionaryKeyTransformers.cs" />
260+
<Compile Include="Serialization\DictionarySerlaizationOptions.cs" />
259261
<Compile Include="Serialization\EmittingSerializers\ILMethodConctext.cs" />
260262
<Compile Include="Serialization\EmittingSerializers\SerializerEmitter.cs" />
261263
<Compile Include="Serialization\INilImplicationHandlerOnUnpackedParameter.cs" />

0 commit comments

Comments
 (0)