Skip to content

Commit 924f46b

Browse files
committed
Add new abstract- and reflection-based-collection serializers hierarchy to support polymorphisms.
1 parent 1504bb4 commit 924f46b

9 files changed

Lines changed: 517 additions & 0 deletions

File tree

src/MsgPack.Net35/MsgPack.Net35.csproj

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,33 @@
248248
<Compile Include="..\MsgPack\Serialization\CollectionKind.cs">
249249
<Link>Serialization\CollectionKind.cs</Link>
250250
</Compile>
251+
<Compile Include="..\MsgPack\Serialization\CollectionSerializers\CollectionMessagePackSerializer`2.cs">
252+
<Link>Serialization\CollectionSerializers\CollectionMessagePackSerializer`2.cs</Link>
253+
</Compile>
254+
<Compile Include="..\MsgPack\Serialization\CollectionSerializers\DictionaryMessagePackSerializer`3.cs">
255+
<Link>Serialization\CollectionSerializers\DictionaryMessagePackSerializer`3.cs</Link>
256+
</Compile>
257+
<Compile Include="..\MsgPack\Serialization\CollectionSerializers\EnumerableMessagePackSerializerBase`2.cs">
258+
<Link>Serialization\CollectionSerializers\EnumerableMessagePackSerializerBase`2.cs</Link>
259+
</Compile>
260+
<Compile Include="..\MsgPack\Serialization\CollectionSerializers\EnumerableMessagePackSerializer`2.cs">
261+
<Link>Serialization\CollectionSerializers\EnumerableMessagePackSerializer`2.cs</Link>
262+
</Compile>
263+
<Compile Include="..\MsgPack\Serialization\CollectionSerializers\ICollectionInstanceFactory.cs">
264+
<Link>Serialization\CollectionSerializers\ICollectionInstanceFactory.cs</Link>
265+
</Compile>
266+
<Compile Include="..\MsgPack\Serialization\CollectionSerializers\NonGenericCollectionMessagePackSerializer`1.cs">
267+
<Link>Serialization\CollectionSerializers\NonGenericCollectionMessagePackSerializer`1.cs</Link>
268+
</Compile>
269+
<Compile Include="..\MsgPack\Serialization\CollectionSerializers\NonGenericDictionaryMessagePackSerializer`1.cs">
270+
<Link>Serialization\CollectionSerializers\NonGenericDictionaryMessagePackSerializer`1.cs</Link>
271+
</Compile>
272+
<Compile Include="..\MsgPack\Serialization\CollectionSerializers\NonGenericEnumerableMessagePackSerializerBase`1.cs">
273+
<Link>Serialization\CollectionSerializers\NonGenericEnumerableMessagePackSerializerBase`1.cs</Link>
274+
</Compile>
275+
<Compile Include="..\MsgPack\Serialization\CollectionSerializers\NonGenericListMessagePackSerializer`1.cs">
276+
<Link>Serialization\CollectionSerializers\NonGenericListMessagePackSerializer`1.cs</Link>
277+
</Compile>
251278
<Compile Include="..\MsgPack\Serialization\CollectionTraits.cs">
252279
<Link>Serialization\CollectionTraits.cs</Link>
253280
</Compile>
@@ -257,6 +284,30 @@
257284
<Compile Include="..\MsgPack\Serialization\DefaultConcreteTypeRepository.cs">
258285
<Link>Serialization\DefaultConcreteTypeRepository.cs</Link>
259286
</Compile>
287+
<Compile Include="..\MsgPack\Serialization\DefaultSerializers\AbstractCollectionMessagePackSerializer`2.cs">
288+
<Link>Serialization\DefaultSerializers\AbstractCollectionMessagePackSerializer`2.cs</Link>
289+
</Compile>
290+
<Compile Include="..\MsgPack\Serialization\DefaultSerializers\AbstractCollectionSerializerHelper.cs">
291+
<Link>Serialization\DefaultSerializers\AbstractCollectionSerializerHelper.cs</Link>
292+
</Compile>
293+
<Compile Include="..\MsgPack\Serialization\DefaultSerializers\AbstractDictionaryMessagePackSerializer`3.cs">
294+
<Link>Serialization\DefaultSerializers\AbstractDictionaryMessagePackSerializer`3.cs</Link>
295+
</Compile>
296+
<Compile Include="..\MsgPack\Serialization\DefaultSerializers\AbstractEnumerableMessagePackSerializer`2.cs">
297+
<Link>Serialization\DefaultSerializers\AbstractEnumerableMessagePackSerializer`2.cs</Link>
298+
</Compile>
299+
<Compile Include="..\MsgPack\Serialization\DefaultSerializers\AbstractNonGenericCollectionMessagePackSerializer`1.cs">
300+
<Link>Serialization\DefaultSerializers\AbstractNonGenericCollectionMessagePackSerializer`1.cs</Link>
301+
</Compile>
302+
<Compile Include="..\MsgPack\Serialization\DefaultSerializers\AbstractNonGenericDictionaryMessagePackSerializer`1.cs">
303+
<Link>Serialization\DefaultSerializers\AbstractNonGenericDictionaryMessagePackSerializer`1.cs</Link>
304+
</Compile>
305+
<Compile Include="..\MsgPack\Serialization\DefaultSerializers\AbstractNonGenericEnumerableMessagePackSerializer`1.cs">
306+
<Link>Serialization\DefaultSerializers\AbstractNonGenericEnumerableMessagePackSerializer`1.cs</Link>
307+
</Compile>
308+
<Compile Include="..\MsgPack\Serialization\DefaultSerializers\AbstractNonGenericListMessagePackSerializer`1.cs">
309+
<Link>Serialization\DefaultSerializers\AbstractNonGenericListMessagePackSerializer`1.cs</Link>
310+
</Compile>
260311
<Compile Include="..\MsgPack\Serialization\DefaultSerializers\ArraySegmentMessageSerializer.cs">
261312
<Link>Serialization\DefaultSerializers\ArraySegmentMessageSerializer.cs</Link>
262313
</Compile>
@@ -652,13 +703,24 @@
652703
</Compile>
653704
<Compile Include="..\MsgPack\Serialization\ReflectionSerializers\ReflectionCollectionSerializer.cs">
654705
<Link>Serialization\ReflectionSerializers\ReflectionCollectionSerializer.cs</Link>
706+
<Compile Include="..\MsgPack\Serialization\ReflectionSerializers\ReflectionCollectionMessagePackSerializer`2.cs">
707+
<Link>Serialization\ReflectionSerializers\ReflectionCollectionMessagePackSerializer`2.cs</Link>
708+
</Compile>
709+
<Compile Include="..\MsgPack\Serialization\ReflectionSerializers\ReflectionDictionaryMessagePackSerializer`3.cs">
710+
<Link>Serialization\ReflectionSerializers\ReflectionDictionaryMessagePackSerializer`3.cs</Link>
655711
</Compile>
656712
<Compile Include="..\MsgPack\Serialization\ReflectionSerializers\ReflectionEnumMessagePackSerializer`1.cs">
657713
<Link>Serialization\ReflectionSerializers\ReflectionEnumMessagePackSerializer`1.cs</Link>
658714
</Compile>
659715
<Compile Include="..\MsgPack\Serialization\ReflectionSerializers\ReflectionNilImplicationHandler.cs">
660716
<Link>Serialization\ReflectionSerializers\ReflectionNilImplicationHandler.cs</Link>
661717
</Compile>
718+
<Compile Include="..\MsgPack\Serialization\ReflectionSerializers\ReflectionNonGenericDictionaryMessagePackSerializer`1.cs">
719+
<Link>Serialization\ReflectionSerializers\ReflectionNonGenericDictionaryMessagePackSerializer`1.cs</Link>
720+
</Compile>
721+
<Compile Include="..\MsgPack\Serialization\ReflectionSerializers\ReflectionNonGenericListMessagePackSerializer`1.cs">
722+
<Link>Serialization\ReflectionSerializers\ReflectionNonGenericListMessagePackSerializer`1.cs</Link>
723+
</Compile>
662724
<Compile Include="..\MsgPack\Serialization\ReflectionSerializers\ReflectionObjectMessagePackSerializer`1.cs">
663725
<Link>Serialization\ReflectionSerializers\ReflectionObjectMessagePackSerializer`1.cs</Link>
664726
</Compile>

src/MsgPack.Net40/MsgPack.Net40.csproj

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,33 @@
238238
<Compile Include="..\MsgPack\Serialization\CollectionKind.cs">
239239
<Link>Serialization\CollectionKind.cs</Link>
240240
</Compile>
241+
<Compile Include="..\MsgPack\Serialization\CollectionSerializers\CollectionMessagePackSerializer`2.cs">
242+
<Link>Serialization\CollectionSerializers\CollectionMessagePackSerializer`2.cs</Link>
243+
</Compile>
244+
<Compile Include="..\MsgPack\Serialization\CollectionSerializers\DictionaryMessagePackSerializer`3.cs">
245+
<Link>Serialization\CollectionSerializers\DictionaryMessagePackSerializer`3.cs</Link>
246+
</Compile>
247+
<Compile Include="..\MsgPack\Serialization\CollectionSerializers\EnumerableMessagePackSerializerBase`2.cs">
248+
<Link>Serialization\CollectionSerializers\EnumerableMessagePackSerializerBase`2.cs</Link>
249+
</Compile>
250+
<Compile Include="..\MsgPack\Serialization\CollectionSerializers\EnumerableMessagePackSerializer`2.cs">
251+
<Link>Serialization\CollectionSerializers\EnumerableMessagePackSerializer`2.cs</Link>
252+
</Compile>
253+
<Compile Include="..\MsgPack\Serialization\CollectionSerializers\ICollectionInstanceFactory.cs">
254+
<Link>Serialization\CollectionSerializers\ICollectionInstanceFactory.cs</Link>
255+
</Compile>
256+
<Compile Include="..\MsgPack\Serialization\CollectionSerializers\NonGenericCollectionMessagePackSerializer`1.cs">
257+
<Link>Serialization\CollectionSerializers\NonGenericCollectionMessagePackSerializer`1.cs</Link>
258+
</Compile>
259+
<Compile Include="..\MsgPack\Serialization\CollectionSerializers\NonGenericDictionaryMessagePackSerializer`1.cs">
260+
<Link>Serialization\CollectionSerializers\NonGenericDictionaryMessagePackSerializer`1.cs</Link>
261+
</Compile>
262+
<Compile Include="..\MsgPack\Serialization\CollectionSerializers\NonGenericEnumerableMessagePackSerializerBase`1.cs">
263+
<Link>Serialization\CollectionSerializers\NonGenericEnumerableMessagePackSerializerBase`1.cs</Link>
264+
</Compile>
265+
<Compile Include="..\MsgPack\Serialization\CollectionSerializers\NonGenericListMessagePackSerializer`1.cs">
266+
<Link>Serialization\CollectionSerializers\NonGenericListMessagePackSerializer`1.cs</Link>
267+
</Compile>
241268
<Compile Include="..\MsgPack\Serialization\CollectionTraits.cs">
242269
<Link>Serialization\CollectionTraits.cs</Link>
243270
</Compile>
@@ -247,6 +274,30 @@
247274
<Compile Include="..\MsgPack\Serialization\DefaultConcreteTypeRepository.cs">
248275
<Link>Serialization\DefaultConcreteTypeRepository.cs</Link>
249276
</Compile>
277+
<Compile Include="..\MsgPack\Serialization\DefaultSerializers\AbstractCollectionMessagePackSerializer`2.cs">
278+
<Link>Serialization\DefaultSerializers\AbstractCollectionMessagePackSerializer`2.cs</Link>
279+
</Compile>
280+
<Compile Include="..\MsgPack\Serialization\DefaultSerializers\AbstractCollectionSerializerHelper.cs">
281+
<Link>Serialization\DefaultSerializers\AbstractCollectionSerializerHelper.cs</Link>
282+
</Compile>
283+
<Compile Include="..\MsgPack\Serialization\DefaultSerializers\AbstractDictionaryMessagePackSerializer`3.cs">
284+
<Link>Serialization\DefaultSerializers\AbstractDictionaryMessagePackSerializer`3.cs</Link>
285+
</Compile>
286+
<Compile Include="..\MsgPack\Serialization\DefaultSerializers\AbstractEnumerableMessagePackSerializer`2.cs">
287+
<Link>Serialization\DefaultSerializers\AbstractEnumerableMessagePackSerializer`2.cs</Link>
288+
</Compile>
289+
<Compile Include="..\MsgPack\Serialization\DefaultSerializers\AbstractNonGenericCollectionMessagePackSerializer`1.cs">
290+
<Link>Serialization\DefaultSerializers\AbstractNonGenericCollectionMessagePackSerializer`1.cs</Link>
291+
</Compile>
292+
<Compile Include="..\MsgPack\Serialization\DefaultSerializers\AbstractNonGenericDictionaryMessagePackSerializer`1.cs">
293+
<Link>Serialization\DefaultSerializers\AbstractNonGenericDictionaryMessagePackSerializer`1.cs</Link>
294+
</Compile>
295+
<Compile Include="..\MsgPack\Serialization\DefaultSerializers\AbstractNonGenericEnumerableMessagePackSerializer`1.cs">
296+
<Link>Serialization\DefaultSerializers\AbstractNonGenericEnumerableMessagePackSerializer`1.cs</Link>
297+
</Compile>
298+
<Compile Include="..\MsgPack\Serialization\DefaultSerializers\AbstractNonGenericListMessagePackSerializer`1.cs">
299+
<Link>Serialization\DefaultSerializers\AbstractNonGenericListMessagePackSerializer`1.cs</Link>
300+
</Compile>
250301
<Compile Include="..\MsgPack\Serialization\DefaultSerializers\ArraySegmentMessageSerializer.cs">
251302
<Link>Serialization\DefaultSerializers\ArraySegmentMessageSerializer.cs</Link>
252303
</Compile>
@@ -666,13 +717,24 @@
666717
</Compile>
667718
<Compile Include="..\MsgPack\Serialization\ReflectionSerializers\ReflectionCollectionSerializer.cs">
668719
<Link>Serialization\ReflectionSerializers\ReflectionCollectionSerializer.cs</Link>
720+
<Compile Include="..\MsgPack\Serialization\ReflectionSerializers\ReflectionCollectionMessagePackSerializer`2.cs">
721+
<Link>Serialization\ReflectionSerializers\ReflectionCollectionMessagePackSerializer`2.cs</Link>
722+
</Compile>
723+
<Compile Include="..\MsgPack\Serialization\ReflectionSerializers\ReflectionDictionaryMessagePackSerializer`3.cs">
724+
<Link>Serialization\ReflectionSerializers\ReflectionDictionaryMessagePackSerializer`3.cs</Link>
669725
</Compile>
670726
<Compile Include="..\MsgPack\Serialization\ReflectionSerializers\ReflectionEnumMessagePackSerializer`1.cs">
671727
<Link>Serialization\ReflectionSerializers\ReflectionEnumMessagePackSerializer`1.cs</Link>
672728
</Compile>
673729
<Compile Include="..\MsgPack\Serialization\ReflectionSerializers\ReflectionNilImplicationHandler.cs">
674730
<Link>Serialization\ReflectionSerializers\ReflectionNilImplicationHandler.cs</Link>
675731
</Compile>
732+
<Compile Include="..\MsgPack\Serialization\ReflectionSerializers\ReflectionNonGenericDictionaryMessagePackSerializer`1.cs">
733+
<Link>Serialization\ReflectionSerializers\ReflectionNonGenericDictionaryMessagePackSerializer`1.cs</Link>
734+
</Compile>
735+
<Compile Include="..\MsgPack\Serialization\ReflectionSerializers\ReflectionNonGenericListMessagePackSerializer`1.cs">
736+
<Link>Serialization\ReflectionSerializers\ReflectionNonGenericListMessagePackSerializer`1.cs</Link>
737+
</Compile>
676738
<Compile Include="..\MsgPack\Serialization\ReflectionSerializers\ReflectionObjectMessagePackSerializer`1.cs">
677739
<Link>Serialization\ReflectionSerializers\ReflectionObjectMessagePackSerializer`1.cs</Link>
678740
</Compile>

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

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,33 @@
241241
<Compile Include="..\MsgPack\Serialization\CollectionKind.cs">
242242
<Link>Serialization\CollectionKind.cs</Link>
243243
</Compile>
244+
<Compile Include="..\MsgPack\Serialization\CollectionSerializers\CollectionMessagePackSerializer`2.cs">
245+
<Link>Serialization\CollectionSerializers\CollectionMessagePackSerializer`2.cs</Link>
246+
</Compile>
247+
<Compile Include="..\MsgPack\Serialization\CollectionSerializers\DictionaryMessagePackSerializer`3.cs">
248+
<Link>Serialization\CollectionSerializers\DictionaryMessagePackSerializer`3.cs</Link>
249+
</Compile>
250+
<Compile Include="..\MsgPack\Serialization\CollectionSerializers\EnumerableMessagePackSerializerBase`2.cs">
251+
<Link>Serialization\CollectionSerializers\EnumerableMessagePackSerializerBase`2.cs</Link>
252+
</Compile>
253+
<Compile Include="..\MsgPack\Serialization\CollectionSerializers\EnumerableMessagePackSerializer`2.cs">
254+
<Link>Serialization\CollectionSerializers\EnumerableMessagePackSerializer`2.cs</Link>
255+
</Compile>
256+
<Compile Include="..\MsgPack\Serialization\CollectionSerializers\ICollectionInstanceFactory.cs">
257+
<Link>Serialization\CollectionSerializers\ICollectionInstanceFactory.cs</Link>
258+
</Compile>
259+
<Compile Include="..\MsgPack\Serialization\CollectionSerializers\NonGenericCollectionMessagePackSerializer`1.cs">
260+
<Link>Serialization\CollectionSerializers\NonGenericCollectionMessagePackSerializer`1.cs</Link>
261+
</Compile>
262+
<Compile Include="..\MsgPack\Serialization\CollectionSerializers\NonGenericDictionaryMessagePackSerializer`1.cs">
263+
<Link>Serialization\CollectionSerializers\NonGenericDictionaryMessagePackSerializer`1.cs</Link>
264+
</Compile>
265+
<Compile Include="..\MsgPack\Serialization\CollectionSerializers\NonGenericEnumerableMessagePackSerializerBase`1.cs">
266+
<Link>Serialization\CollectionSerializers\NonGenericEnumerableMessagePackSerializerBase`1.cs</Link>
267+
</Compile>
268+
<Compile Include="..\MsgPack\Serialization\CollectionSerializers\NonGenericListMessagePackSerializer`1.cs">
269+
<Link>Serialization\CollectionSerializers\NonGenericListMessagePackSerializer`1.cs</Link>
270+
</Compile>
244271
<Compile Include="..\MsgPack\Serialization\CollectionTraits.cs">
245272
<Link>Serialization\CollectionTraits.cs</Link>
246273
</Compile>
@@ -250,6 +277,30 @@
250277
<Compile Include="..\MsgPack\Serialization\DefaultConcreteTypeRepository.cs">
251278
<Link>Serialization\DefaultConcreteTypeRepository.cs</Link>
252279
</Compile>
280+
<Compile Include="..\MsgPack\Serialization\DefaultSerializers\AbstractCollectionMessagePackSerializer`2.cs">
281+
<Link>Serialization\DefaultSerializers\AbstractCollectionMessagePackSerializer`2.cs</Link>
282+
</Compile>
283+
<Compile Include="..\MsgPack\Serialization\DefaultSerializers\AbstractCollectionSerializerHelper.cs">
284+
<Link>Serialization\DefaultSerializers\AbstractCollectionSerializerHelper.cs</Link>
285+
</Compile>
286+
<Compile Include="..\MsgPack\Serialization\DefaultSerializers\AbstractDictionaryMessagePackSerializer`3.cs">
287+
<Link>Serialization\DefaultSerializers\AbstractDictionaryMessagePackSerializer`3.cs</Link>
288+
</Compile>
289+
<Compile Include="..\MsgPack\Serialization\DefaultSerializers\AbstractEnumerableMessagePackSerializer`2.cs">
290+
<Link>Serialization\DefaultSerializers\AbstractEnumerableMessagePackSerializer`2.cs</Link>
291+
</Compile>
292+
<Compile Include="..\MsgPack\Serialization\DefaultSerializers\AbstractNonGenericCollectionMessagePackSerializer`1.cs">
293+
<Link>Serialization\DefaultSerializers\AbstractNonGenericCollectionMessagePackSerializer`1.cs</Link>
294+
</Compile>
295+
<Compile Include="..\MsgPack\Serialization\DefaultSerializers\AbstractNonGenericDictionaryMessagePackSerializer`1.cs">
296+
<Link>Serialization\DefaultSerializers\AbstractNonGenericDictionaryMessagePackSerializer`1.cs</Link>
297+
</Compile>
298+
<Compile Include="..\MsgPack\Serialization\DefaultSerializers\AbstractNonGenericEnumerableMessagePackSerializer`1.cs">
299+
<Link>Serialization\DefaultSerializers\AbstractNonGenericEnumerableMessagePackSerializer`1.cs</Link>
300+
</Compile>
301+
<Compile Include="..\MsgPack\Serialization\DefaultSerializers\AbstractNonGenericListMessagePackSerializer`1.cs">
302+
<Link>Serialization\DefaultSerializers\AbstractNonGenericListMessagePackSerializer`1.cs</Link>
303+
</Compile>
253304
<Compile Include="..\MsgPack\Serialization\DefaultSerializers\ArraySegmentMessageSerializer.cs">
254305
<Link>Serialization\DefaultSerializers\ArraySegmentMessageSerializer.cs</Link>
255306
</Compile>
@@ -657,13 +708,24 @@
657708
</Compile>
658709
<Compile Include="..\MsgPack\Serialization\ReflectionSerializers\ReflectionCollectionSerializer.cs">
659710
<Link>Serialization\ReflectionSerializers\ReflectionCollectionSerializer.cs</Link>
711+
<Compile Include="..\MsgPack\Serialization\ReflectionSerializers\ReflectionCollectionMessagePackSerializer`2.cs">
712+
<Link>Serialization\ReflectionSerializers\ReflectionCollectionMessagePackSerializer`2.cs</Link>
713+
</Compile>
714+
<Compile Include="..\MsgPack\Serialization\ReflectionSerializers\ReflectionDictionaryMessagePackSerializer`3.cs">
715+
<Link>Serialization\ReflectionSerializers\ReflectionDictionaryMessagePackSerializer`3.cs</Link>
660716
</Compile>
661717
<Compile Include="..\MsgPack\Serialization\ReflectionSerializers\ReflectionEnumMessagePackSerializer`1.cs">
662718
<Link>Serialization\ReflectionSerializers\ReflectionEnumMessagePackSerializer`1.cs</Link>
663719
</Compile>
664720
<Compile Include="..\MsgPack\Serialization\ReflectionSerializers\ReflectionNilImplicationHandler.cs">
665721
<Link>Serialization\ReflectionSerializers\ReflectionNilImplicationHandler.cs</Link>
666722
</Compile>
723+
<Compile Include="..\MsgPack\Serialization\ReflectionSerializers\ReflectionNonGenericDictionaryMessagePackSerializer`1.cs">
724+
<Link>Serialization\ReflectionSerializers\ReflectionNonGenericDictionaryMessagePackSerializer`1.cs</Link>
725+
</Compile>
726+
<Compile Include="..\MsgPack\Serialization\ReflectionSerializers\ReflectionNonGenericListMessagePackSerializer`1.cs">
727+
<Link>Serialization\ReflectionSerializers\ReflectionNonGenericListMessagePackSerializer`1.cs</Link>
728+
</Compile>
667729
<Compile Include="..\MsgPack\Serialization\ReflectionSerializers\ReflectionObjectMessagePackSerializer`1.cs">
668730
<Link>Serialization\ReflectionSerializers\ReflectionObjectMessagePackSerializer`1.cs</Link>
669731
</Compile>

0 commit comments

Comments
 (0)