Skip to content

Commit e9ff9af

Browse files
committed
Fix built-in serializer helpers failed in non-privileged Silverlight environment. Fix #205
1 parent 0e30f86 commit e9ff9af

2 files changed

Lines changed: 120 additions & 20 deletions

File tree

src/MsgPack/Serialization/DefaultSerializers/GenericSerializer.cs

Lines changed: 72 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -538,13 +538,23 @@ internal static bool IsSupported( Type type, CollectionTraits traits, bool prefe
538538
/// <summary>
539539
/// Defines non-generic factory method for built-in serializers which require generic type argument.
540540
/// </summary>
541-
private interface IGenericBuiltInSerializerFactory
541+
#if SILVERLIGHT
542+
internal
543+
#else
544+
private
545+
#endif // SILVERLIGHT
546+
interface IGenericBuiltInSerializerFactory
542547
{
543548
MessagePackSerializer Create( SerializationContext context, PolymorphismSchema schema );
544549
}
545550

546551
[Preserve( AllMembers = true )]
547-
private sealed class NullableInstanceFactory<T> : IGenericBuiltInSerializerFactory
552+
#if SILVERLIGHT
553+
internal
554+
#else
555+
private
556+
#endif // SILVERLIGHT
557+
sealed class NullableInstanceFactory<T> : IGenericBuiltInSerializerFactory
548558
where T : struct
549559
{
550560
public NullableInstanceFactory() { }
@@ -556,7 +566,12 @@ public MessagePackSerializer Create( SerializationContext context, PolymorphismS
556566
}
557567

558568
[Preserve( AllMembers = true )]
559-
private sealed class ListInstanceFactory<T> : IGenericBuiltInSerializerFactory
569+
#if SILVERLIGHT
570+
internal
571+
#else
572+
private
573+
#endif // SILVERLIGHT
574+
sealed class ListInstanceFactory<T> : IGenericBuiltInSerializerFactory
560575
{
561576
public ListInstanceFactory() { }
562577

@@ -568,7 +583,12 @@ public MessagePackSerializer Create( SerializationContext context, PolymorphismS
568583
}
569584

570585
[Preserve( AllMembers = true )]
571-
private sealed class DictionaryInstanceFactory<TKey, TValue> : IGenericBuiltInSerializerFactory
586+
#if SILVERLIGHT
587+
internal
588+
#else
589+
private
590+
#endif // SILVERLIGHT
591+
sealed class DictionaryInstanceFactory<TKey, TValue> : IGenericBuiltInSerializerFactory
572592
{
573593
public DictionaryInstanceFactory() { }
574594

@@ -656,14 +676,24 @@ public MessagePackSerializer Create( SerializationContext context, PolymorphismS
656676
/// <summary>
657677
/// Defines non-generic factory method for 'universal' serializers which use general collection features.
658678
/// </summary>
659-
private interface IVariantSerializerFactory
679+
#if SILVERLIGHT
680+
internal
681+
#else
682+
private
683+
#endif // SILVERLIGHT
684+
interface IVariantSerializerFactory
660685
{
661686
MessagePackSerializer Create( SerializationContext context, Type targetType, PolymorphismSchema schema );
662687
}
663688

664689
// ReSharper disable MemberHidesStaticFromOuterClass
665690
[Preserve( AllMembers = true )]
666-
private sealed class NonGenericEnumerableSerializerFactory<T> : IVariantSerializerFactory
691+
#if SILVERLIGHT
692+
internal
693+
#else
694+
private
695+
#endif // SILVERLIGHT
696+
sealed class NonGenericEnumerableSerializerFactory<T> : IVariantSerializerFactory
667697
where T : IEnumerable
668698
{
669699
public NonGenericEnumerableSerializerFactory() { }
@@ -675,7 +705,12 @@ public MessagePackSerializer Create( SerializationContext context, Type targetTy
675705
}
676706

677707
[Preserve( AllMembers = true )]
678-
private sealed class NonGenericCollectionSerializerFactory<T> : IVariantSerializerFactory
708+
#if SILVERLIGHT
709+
internal
710+
#else
711+
private
712+
#endif // SILVERLIGHT
713+
sealed class NonGenericCollectionSerializerFactory<T> : IVariantSerializerFactory
679714
where T : ICollection
680715
{
681716
public NonGenericCollectionSerializerFactory() { }
@@ -687,7 +722,12 @@ public MessagePackSerializer Create( SerializationContext context, Type targetTy
687722
}
688723

689724
[Preserve( AllMembers = true )]
690-
private sealed class NonGenericListSerializerFactory<T> : IVariantSerializerFactory
725+
#if SILVERLIGHT
726+
internal
727+
#else
728+
private
729+
#endif // SILVERLIGHT
730+
sealed class NonGenericListSerializerFactory<T> : IVariantSerializerFactory
691731
where T : IList
692732
{
693733
public NonGenericListSerializerFactory() { }
@@ -699,7 +739,12 @@ public MessagePackSerializer Create( SerializationContext context, Type targetTy
699739
}
700740

701741
[Preserve( AllMembers = true )]
702-
private sealed class NonGenericDictionarySerializerFactory<T> : IVariantSerializerFactory
742+
#if SILVERLIGHT
743+
internal
744+
#else
745+
private
746+
#endif // SILVERLIGHT
747+
sealed class NonGenericDictionarySerializerFactory<T> : IVariantSerializerFactory
703748
where T : IDictionary
704749
{
705750
public NonGenericDictionarySerializerFactory() { }
@@ -711,7 +756,12 @@ public MessagePackSerializer Create( SerializationContext context, Type targetTy
711756
}
712757

713758
[Preserve( AllMembers = true )]
714-
private sealed class EnumerableSerializerFactory<TCollection, TItem> : IVariantSerializerFactory
759+
#if SILVERLIGHT
760+
internal
761+
#else
762+
private
763+
#endif // SILVERLIGHT
764+
sealed class EnumerableSerializerFactory<TCollection, TItem> : IVariantSerializerFactory
715765
where TCollection : IEnumerable<TItem>
716766
{
717767
public EnumerableSerializerFactory() { }
@@ -723,7 +773,12 @@ public MessagePackSerializer Create( SerializationContext context, Type targetTy
723773
}
724774

725775
[Preserve( AllMembers = true )]
726-
private sealed class CollectionSerializerFactory<TCollection, TItem> : IVariantSerializerFactory
776+
#if SILVERLIGHT
777+
internal
778+
#else
779+
private
780+
#endif // SILVERLIGHT
781+
sealed class CollectionSerializerFactory<TCollection, TItem> : IVariantSerializerFactory
727782
where TCollection : ICollection<TItem>
728783
{
729784
public CollectionSerializerFactory() { }
@@ -749,7 +804,12 @@ public MessagePackSerializer Create( SerializationContext context, Type targetTy
749804
#endif // !NETFX_35 && !UNITY && !NETFX_40 && !( SILVERLIGHT && !WINDOWS_PHONE )
750805

751806
[Preserve( AllMembers = true )]
752-
private sealed class DictionarySerializerFactory<TDictionary, TKey, TValue> : IVariantSerializerFactory
807+
#if SILVERLIGHT
808+
internal
809+
#else
810+
private
811+
#endif // SILVERLIGHT
812+
sealed class DictionarySerializerFactory<TDictionary, TKey, TValue> : IVariantSerializerFactory
753813
where TDictionary : IDictionary<TKey, TValue>
754814
{
755815
public DictionarySerializerFactory() { }

src/MsgPack/Serialization/ReflectionSerializers/ReflectionSerializerHelper.cs

Lines changed: 48 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -427,15 +427,25 @@ public static Func<int, object> CreateCollectionInstanceFactory( Type abstractTy
427427
/// <summary>
428428
/// Defines non-generic factory method for 'universal' serializers which use general collection features.
429429
/// </summary>
430-
private interface IVariantReflectionSerializerFactory
430+
#if SILVERLIGHT
431+
internal
432+
#else
433+
private
434+
#endif // SILVERLIGHT
435+
interface IVariantReflectionSerializerFactory
431436
{
432437
MessagePackSerializer Create( SerializationContext context, Type targetType, CollectionTraits collectionTraits, PolymorphismSchema schema, SerializationTarget targetInfo );
433438
}
434439

435440
// ReSharper disable MemberHidesStaticFromOuterClass
436441

437442
[Preserve( AllMembers = true )]
438-
private sealed class NonGenericEnumerableSerializerFactory<T> : IVariantReflectionSerializerFactory
443+
#if SILVERLIGHT
444+
internal
445+
#else
446+
private
447+
#endif // SILVERLIGHT
448+
sealed class NonGenericEnumerableSerializerFactory<T> : IVariantReflectionSerializerFactory
439449
where T : IEnumerable
440450
{
441451
public NonGenericEnumerableSerializerFactory() { }
@@ -447,7 +457,12 @@ public MessagePackSerializer Create( SerializationContext context, Type targetTy
447457
}
448458

449459
[Preserve( AllMembers = true )]
450-
private sealed class NonGenericCollectionSerializerFactory<T> : IVariantReflectionSerializerFactory
460+
#if SILVERLIGHT
461+
internal
462+
#else
463+
private
464+
#endif // SILVERLIGHT
465+
sealed class NonGenericCollectionSerializerFactory<T> : IVariantReflectionSerializerFactory
451466
where T : ICollection
452467
{
453468
public NonGenericCollectionSerializerFactory() { }
@@ -459,7 +474,12 @@ public MessagePackSerializer Create( SerializationContext context, Type targetTy
459474
}
460475

461476
[Preserve( AllMembers = true )]
462-
private sealed class NonGenericListSerializerFactory<T> : IVariantReflectionSerializerFactory
477+
#if SILVERLIGHT
478+
internal
479+
#else
480+
private
481+
#endif // SILVERLIGHT
482+
sealed class NonGenericListSerializerFactory<T> : IVariantReflectionSerializerFactory
463483
where T : IList
464484
{
465485
public NonGenericListSerializerFactory() { }
@@ -471,7 +491,12 @@ public MessagePackSerializer Create( SerializationContext context, Type targetTy
471491
}
472492

473493
[Preserve( AllMembers = true )]
474-
private sealed class NonGenericDictionarySerializerFactory<T> : IVariantReflectionSerializerFactory
494+
#if SILVERLIGHT
495+
internal
496+
#else
497+
private
498+
#endif // SILVERLIGHT
499+
sealed class NonGenericDictionarySerializerFactory<T> : IVariantReflectionSerializerFactory
475500
where T : IDictionary
476501
{
477502
public NonGenericDictionarySerializerFactory() { }
@@ -483,7 +508,12 @@ public MessagePackSerializer Create( SerializationContext context, Type targetTy
483508
}
484509

485510
[Preserve( AllMembers = true )]
486-
private sealed class EnumerableSerializerFactory<TCollection, TItem> : IVariantReflectionSerializerFactory
511+
#if SILVERLIGHT
512+
internal
513+
#else
514+
private
515+
#endif // SILVERLIGHT
516+
sealed class EnumerableSerializerFactory<TCollection, TItem> : IVariantReflectionSerializerFactory
487517
where TCollection : IEnumerable<TItem>
488518
{
489519
public EnumerableSerializerFactory() { }
@@ -496,7 +526,12 @@ public MessagePackSerializer Create( SerializationContext context, Type targetTy
496526
}
497527

498528
[Preserve( AllMembers = true )]
499-
private sealed class CollectionSerializerFactory<TCollection, TItem> : IVariantReflectionSerializerFactory
529+
#if SILVERLIGHT
530+
internal
531+
#else
532+
private
533+
#endif // SILVERLIGHT
534+
sealed class CollectionSerializerFactory<TCollection, TItem> : IVariantReflectionSerializerFactory
500535
where TCollection : ICollection<TItem>
501536
{
502537
public CollectionSerializerFactory() { }
@@ -509,7 +544,12 @@ public MessagePackSerializer Create( SerializationContext context, Type targetTy
509544
}
510545

511546
[Preserve( AllMembers = true )]
512-
private sealed class DictionarySerializerFactory<TDictionary, TKey, TValue> : IVariantReflectionSerializerFactory
547+
#if SILVERLIGHT
548+
internal
549+
#else
550+
private
551+
#endif // SILVERLIGHT
552+
sealed class DictionarySerializerFactory<TDictionary, TKey, TValue> : IVariantReflectionSerializerFactory
513553
where TDictionary : IDictionary<TKey, TValue>
514554
{
515555
public DictionarySerializerFactory() { }

0 commit comments

Comments
 (0)