Skip to content

Commit 66b9418

Browse files
committed
Add enum name transformation. Issue #184.
This commit also includes: * Add unit test cases. * Unify implementation to dictionary key transformer for maitenancibility. * Add EnumSerializationOptions to suppress flatten option explosion.
1 parent 7be3fb9 commit 66b9418

39 files changed

Lines changed: 1786 additions & 148 deletions

File tree

src/MsgPack.Net35/MsgPack.Net35.csproj

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -597,9 +597,15 @@
597597
<Compile Include="..\MsgPack\Serialization\EnumMessagePackSerializer`1.cs">
598598
<Link>Serialization\EnumMessagePackSerializer`1.cs</Link>
599599
</Compile>
600+
<Compile Include="..\MsgPack\Serialization\EnumNameTransformers.cs">
601+
<Link>Serialization\EnumNameTransformers.cs</Link>
602+
</Compile>
600603
<Compile Include="..\MsgPack\Serialization\EnumSerializationMethod.cs">
601604
<Link>Serialization\EnumSerializationMethod.cs</Link>
602605
</Compile>
606+
<Compile Include="..\MsgPack\Serialization\EnumSerializationOptions.cs">
607+
<Link>Serialization\EnumSerializationOptions.cs</Link>
608+
</Compile>
603609
<Compile Include="..\MsgPack\Serialization\ExtTypeCodeMapping.cs">
604610
<Link>Serialization\ExtTypeCodeMapping.cs</Link>
605611
</Compile>
@@ -630,6 +636,9 @@
630636
<Compile Include="..\MsgPack\Serialization\ISerializerGeneratorConfiguration.cs">
631637
<Link>Serialization\ISerializerGeneratorConfiguration.cs</Link>
632638
</Compile>
639+
<Compile Include="..\MsgPack\Serialization\KeyNameTransformers.cs">
640+
<Link>Serialization\KeyNameTransformers.cs</Link>
641+
</Compile>
633642
<Compile Include="..\MsgPack\Serialization\LazyDelegatingMessagePackSerializer`1.cs">
634643
<Link>Serialization\LazyDelegatingMessagePackSerializer`1.cs</Link>
635644
</Compile>

src/MsgPack.Net45/MsgPack.Net45.csproj

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,7 @@
4141
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'CodeAnalysis|AnyCPU'">
4242
<OutputPath>bin\CodeAnalysis\</OutputPath>
4343
<DefineConstants>TRACE;FEATURE_TAP;NETFX_45;CODE_ANALYSIS</DefineConstants>
44-
<DocumentationFile>
45-
</DocumentationFile>
44+
<DocumentationFile></DocumentationFile>
4645
<Optimize>true</Optimize>
4746
<DebugType>pdbonly</DebugType>
4847
<PlatformTarget>AnyCPU</PlatformTarget>
@@ -629,9 +628,15 @@
629628
<Compile Include="..\MsgPack\Serialization\EnumMessagePackSerializer`1.cs">
630629
<Link>Serialization\EnumMessagePackSerializer`1.cs</Link>
631630
</Compile>
631+
<Compile Include="..\MsgPack\Serialization\EnumNameTransformers.cs">
632+
<Link>Serialization\EnumNameTransformers.cs</Link>
633+
</Compile>
632634
<Compile Include="..\MsgPack\Serialization\EnumSerializationMethod.cs">
633635
<Link>Serialization\EnumSerializationMethod.cs</Link>
634636
</Compile>
637+
<Compile Include="..\MsgPack\Serialization\EnumSerializationOptions.cs">
638+
<Link>Serialization\EnumSerializationOptions.cs</Link>
639+
</Compile>
635640
<Compile Include="..\MsgPack\Serialization\ExtTypeCodeMapping.cs">
636641
<Link>Serialization\ExtTypeCodeMapping.cs</Link>
637642
</Compile>
@@ -662,6 +667,9 @@
662667
<Compile Include="..\MsgPack\Serialization\ISerializerGeneratorConfiguration.cs">
663668
<Link>Serialization\ISerializerGeneratorConfiguration.cs</Link>
664669
</Compile>
670+
<Compile Include="..\MsgPack\Serialization\KeyNameTransformers.cs">
671+
<Link>Serialization\KeyNameTransformers.cs</Link>
672+
</Compile>
665673
<Compile Include="..\MsgPack\Serialization\LazyDelegatingMessagePackSerializer`1.cs">
666674
<Link>Serialization\LazyDelegatingMessagePackSerializer`1.cs</Link>
667675
</Compile>

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -437,9 +437,15 @@
437437
<Compile Include="..\MsgPack\Serialization\EnumMessagePackSerializer`1.cs">
438438
<Link>Serialization\EnumMessagePackSerializer`1.cs</Link>
439439
</Compile>
440+
<Compile Include="..\MsgPack\Serialization\EnumNameTransformers.cs">
441+
<Link>Serialization\EnumNameTransformers.cs</Link>
442+
</Compile>
440443
<Compile Include="..\MsgPack\Serialization\EnumSerializationMethod.cs">
441444
<Link>Serialization\EnumSerializationMethod.cs</Link>
442445
</Compile>
446+
<Compile Include="..\MsgPack\Serialization\EnumSerializationOptions.cs">
447+
<Link>Serialization\EnumSerializationOptions.cs</Link>
448+
</Compile>
443449
<Compile Include="..\MsgPack\Serialization\ExtTypeCodeMapping.cs">
444450
<Link>Serialization\ExtTypeCodeMapping.cs</Link>
445451
</Compile>
@@ -467,6 +473,9 @@
467473
<Compile Include="..\MsgPack\Serialization\INilImplicationHandlerParameter.cs">
468474
<Link>Serialization\INilImplicationHandlerParameter.cs</Link>
469475
</Compile>
476+
<Compile Include="..\MsgPack\Serialization\KeyNameTransformers.cs">
477+
<Link>Serialization\KeyNameTransformers.cs</Link>
478+
</Compile>
470479
<Compile Include="..\MsgPack\Serialization\LazyDelegatingMessagePackSerializer`1.cs">
471480
<Link>Serialization\LazyDelegatingMessagePackSerializer`1.cs</Link>
472481
</Compile>

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -509,9 +509,15 @@
509509
<Compile Include="..\MsgPack\Serialization\EnumMessagePackSerializer`1.cs">
510510
<Link>Serialization\EnumMessagePackSerializer`1.cs</Link>
511511
</Compile>
512+
<Compile Include="..\MsgPack\Serialization\EnumNameTransformers.cs">
513+
<Link>Serialization\EnumNameTransformers.cs</Link>
514+
</Compile>
512515
<Compile Include="..\MsgPack\Serialization\EnumSerializationMethod.cs">
513516
<Link>Serialization\EnumSerializationMethod.cs</Link>
514517
</Compile>
518+
<Compile Include="..\MsgPack\Serialization\EnumSerializationOptions.cs">
519+
<Link>Serialization\EnumSerializationOptions.cs</Link>
520+
</Compile>
515521
<Compile Include="..\MsgPack\Serialization\ExtTypeCodeMapping.cs">
516522
<Link>Serialization\ExtTypeCodeMapping.cs</Link>
517523
</Compile>
@@ -533,6 +539,9 @@
533539
<Compile Include="..\MsgPack\Serialization\INilImplicationHandlerParameter.cs">
534540
<Link>Serialization\INilImplicationHandlerParameter.cs</Link>
535541
</Compile>
542+
<Compile Include="..\MsgPack\Serialization\KeyNameTransformers.cs">
543+
<Link>Serialization\KeyNameTransformers.cs</Link>
544+
</Compile>
536545
<Compile Include="..\MsgPack\Serialization\LazyDelegatingMessagePackSerializer`1.cs">
537546
<Link>Serialization\LazyDelegatingMessagePackSerializer`1.cs</Link>
538547
</Compile>

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

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,7 @@
3636
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'CodeAnalysis|AnyCPU'">
3737
<OutputPath>bin\CodeAnalysis\</OutputPath>
3838
<DefineConstants>TRACE;UNITY_IPHONE;MSGPACK_UNITY_FULL;AOT;CODE_ANALYSIS</DefineConstants>
39-
<DocumentationFile>
40-
</DocumentationFile>
39+
<DocumentationFile></DocumentationFile>
4140
<Optimize>true</Optimize>
4241
<NoWarn>3001,3002</NoWarn>
4342
<DebugType>pdbonly</DebugType>
@@ -416,9 +415,15 @@
416415
<Compile Include="..\MsgPack\Serialization\EnumMessagePackSerializer`1.cs">
417416
<Link>Serialization\EnumMessagePackSerializer`1.cs</Link>
418417
</Compile>
418+
<Compile Include="..\MsgPack\Serialization\EnumNameTransformers.cs">
419+
<Link>Serialization\EnumNameTransformers.cs</Link>
420+
</Compile>
419421
<Compile Include="..\MsgPack\Serialization\EnumSerializationMethod.cs">
420422
<Link>Serialization\EnumSerializationMethod.cs</Link>
421423
</Compile>
424+
<Compile Include="..\MsgPack\Serialization\EnumSerializationOptions.cs">
425+
<Link>Serialization\EnumSerializationOptions.cs</Link>
426+
</Compile>
422427
<Compile Include="..\MsgPack\Serialization\ExtTypeCodeMapping.cs">
423428
<Link>Serialization\ExtTypeCodeMapping.cs</Link>
424429
</Compile>
@@ -440,6 +445,9 @@
440445
<Compile Include="..\MsgPack\Serialization\INilImplicationHandlerParameter.cs">
441446
<Link>Serialization\INilImplicationHandlerParameter.cs</Link>
442447
</Compile>
448+
<Compile Include="..\MsgPack\Serialization\KeyNameTransformers.cs">
449+
<Link>Serialization\KeyNameTransformers.cs</Link>
450+
</Compile>
443451
<Compile Include="..\MsgPack\Serialization\LazyDelegatingMessagePackSerializer`1.cs">
444452
<Link>Serialization\LazyDelegatingMessagePackSerializer`1.cs</Link>
445453
</Compile>

src/MsgPack.Unity/MsgPack.Unity.csproj

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -425,9 +425,15 @@
425425
<Compile Include="..\MsgPack\Serialization\EnumMessagePackSerializer`1.cs">
426426
<Link>Serialization\EnumMessagePackSerializer`1.cs</Link>
427427
</Compile>
428+
<Compile Include="..\MsgPack\Serialization\EnumNameTransformers.cs">
429+
<Link>Serialization\EnumNameTransformers.cs</Link>
430+
</Compile>
428431
<Compile Include="..\MsgPack\Serialization\EnumSerializationMethod.cs">
429432
<Link>Serialization\EnumSerializationMethod.cs</Link>
430433
</Compile>
434+
<Compile Include="..\MsgPack\Serialization\EnumSerializationOptions.cs">
435+
<Link>Serialization\EnumSerializationOptions.cs</Link>
436+
</Compile>
431437
<Compile Include="..\MsgPack\Serialization\ExtTypeCodeMapping.cs">
432438
<Link>Serialization\ExtTypeCodeMapping.cs</Link>
433439
</Compile>
@@ -449,6 +455,9 @@
449455
<Compile Include="..\MsgPack\Serialization\INilImplicationHandlerParameter.cs">
450456
<Link>Serialization\INilImplicationHandlerParameter.cs</Link>
451457
</Compile>
458+
<Compile Include="..\MsgPack\Serialization\KeyNameTransformers.cs">
459+
<Link>Serialization\KeyNameTransformers.cs</Link>
460+
</Compile>
452461
<Compile Include="..\MsgPack\Serialization\LazyDelegatingMessagePackSerializer`1.cs">
453462
<Link>Serialization\LazyDelegatingMessagePackSerializer`1.cs</Link>
454463
</Compile>

src/MsgPack.Uwp/MsgPack.Uwp.csproj

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -521,9 +521,15 @@
521521
<Compile Include="..\MsgPack\Serialization\EnumMessagePackSerializer`1.cs">
522522
<Link>Serialization\EnumMessagePackSerializer`1.cs</Link>
523523
</Compile>
524+
<Compile Include="..\MsgPack\Serialization\EnumNameTransformers.cs">
525+
<Link>Serialization\EnumNameTransformers.cs</Link>
526+
</Compile>
524527
<Compile Include="..\MsgPack\Serialization\EnumSerializationMethod.cs">
525528
<Link>Serialization\EnumSerializationMethod.cs</Link>
526529
</Compile>
530+
<Compile Include="..\MsgPack\Serialization\EnumSerializationOptions.cs">
531+
<Link>Serialization\EnumSerializationOptions.cs</Link>
532+
</Compile>
527533
<Compile Include="..\MsgPack\Serialization\ExtTypeCodeMapping.cs">
528534
<Link>Serialization\ExtTypeCodeMapping.cs</Link>
529535
</Compile>
@@ -545,6 +551,9 @@
545551
<Compile Include="..\MsgPack\Serialization\INilImplicationHandlerParameter.cs">
546552
<Link>Serialization\INilImplicationHandlerParameter.cs</Link>
547553
</Compile>
554+
<Compile Include="..\MsgPack\Serialization\KeyNameTransformers.cs">
555+
<Link>Serialization\KeyNameTransformers.cs</Link>
556+
</Compile>
548557
<Compile Include="..\MsgPack\Serialization\LazyDelegatingMessagePackSerializer`1.cs">
549558
<Link>Serialization\LazyDelegatingMessagePackSerializer`1.cs</Link>
550559
</Compile>

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -443,9 +443,15 @@
443443
<Compile Include="..\MsgPack\Serialization\EnumMessagePackSerializer`1.cs">
444444
<Link>Serialization\EnumMessagePackSerializer`1.cs</Link>
445445
</Compile>
446+
<Compile Include="..\MsgPack\Serialization\EnumNameTransformers.cs">
447+
<Link>Serialization\EnumNameTransformers.cs</Link>
448+
</Compile>
446449
<Compile Include="..\MsgPack\Serialization\EnumSerializationMethod.cs">
447450
<Link>Serialization\EnumSerializationMethod.cs</Link>
448451
</Compile>
452+
<Compile Include="..\MsgPack\Serialization\EnumSerializationOptions.cs">
453+
<Link>Serialization\EnumSerializationOptions.cs</Link>
454+
</Compile>
449455
<Compile Include="..\MsgPack\Serialization\ExtTypeCodeMapping.cs">
450456
<Link>Serialization\ExtTypeCodeMapping.cs</Link>
451457
</Compile>
@@ -467,6 +473,9 @@
467473
<Compile Include="..\MsgPack\Serialization\INilImplicationHandlerParameter.cs">
468474
<Link>Serialization\INilImplicationHandlerParameter.cs</Link>
469475
</Compile>
476+
<Compile Include="..\MsgPack\Serialization\KeyNameTransformers.cs">
477+
<Link>Serialization\KeyNameTransformers.cs</Link>
478+
</Compile>
470479
<Compile Include="..\MsgPack\Serialization\LazyDelegatingMessagePackSerializer`1.cs">
471480
<Link>Serialization\LazyDelegatingMessagePackSerializer`1.cs</Link>
472481
</Compile>

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -439,9 +439,15 @@
439439
<Compile Include="..\MsgPack\Serialization\EnumMessagePackSerializer`1.cs">
440440
<Link>Serialization\EnumMessagePackSerializer`1.cs</Link>
441441
</Compile>
442+
<Compile Include="..\MsgPack\Serialization\EnumNameTransformers.cs">
443+
<Link>Serialization\EnumNameTransformers.cs</Link>
444+
</Compile>
442445
<Compile Include="..\MsgPack\Serialization\EnumSerializationMethod.cs">
443446
<Link>Serialization\EnumSerializationMethod.cs</Link>
444447
</Compile>
448+
<Compile Include="..\MsgPack\Serialization\EnumSerializationOptions.cs">
449+
<Link>Serialization\EnumSerializationOptions.cs</Link>
450+
</Compile>
445451
<Compile Include="..\MsgPack\Serialization\ExtTypeCodeMapping.cs">
446452
<Link>Serialization\ExtTypeCodeMapping.cs</Link>
447453
</Compile>
@@ -463,6 +469,9 @@
463469
<Compile Include="..\MsgPack\Serialization\INilImplicationHandlerParameter.cs">
464470
<Link>Serialization\INilImplicationHandlerParameter.cs</Link>
465471
</Compile>
472+
<Compile Include="..\MsgPack\Serialization\KeyNameTransformers.cs">
473+
<Link>Serialization\KeyNameTransformers.cs</Link>
474+
</Compile>
466475
<Compile Include="..\MsgPack\Serialization\LazyDelegatingMessagePackSerializer`1.cs">
467476
<Link>Serialization\LazyDelegatingMessagePackSerializer`1.cs</Link>
468477
</Compile>

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -439,9 +439,15 @@
439439
<Compile Include="..\MsgPack\Serialization\EnumMessagePackSerializer`1.cs">
440440
<Link>Serialization\EnumMessagePackSerializer`1.cs</Link>
441441
</Compile>
442+
<Compile Include="..\MsgPack\Serialization\EnumNameTransformers.cs">
443+
<Link>Serialization\EnumNameTransformers.cs</Link>
444+
</Compile>
442445
<Compile Include="..\MsgPack\Serialization\EnumSerializationMethod.cs">
443446
<Link>Serialization\EnumSerializationMethod.cs</Link>
444447
</Compile>
448+
<Compile Include="..\MsgPack\Serialization\EnumSerializationOptions.cs">
449+
<Link>Serialization\EnumSerializationOptions.cs</Link>
450+
</Compile>
445451
<Compile Include="..\MsgPack\Serialization\ExtTypeCodeMapping.cs">
446452
<Link>Serialization\ExtTypeCodeMapping.cs</Link>
447453
</Compile>
@@ -463,6 +469,9 @@
463469
<Compile Include="..\MsgPack\Serialization\INilImplicationHandlerParameter.cs">
464470
<Link>Serialization\INilImplicationHandlerParameter.cs</Link>
465471
</Compile>
472+
<Compile Include="..\MsgPack\Serialization\KeyNameTransformers.cs">
473+
<Link>Serialization\KeyNameTransformers.cs</Link>
474+
</Compile>
466475
<Compile Include="..\MsgPack\Serialization\LazyDelegatingMessagePackSerializer`1.cs">
467476
<Link>Serialization\LazyDelegatingMessagePackSerializer`1.cs</Link>
468477
</Compile>

0 commit comments

Comments
 (0)