@@ -94,7 +94,7 @@ public static SerializationMethodGeneratorManager Get( SerializationMethodGenera
9494
9595#if ! SILVERLIGHT
9696
97- private static SerializationMethodGeneratorManager _canCollect = new SerializationMethodGeneratorManager ( false , true , null ) ;
97+ private static SerializationMethodGeneratorManager _canCollect = Create ( false , true , null ) ;
9898
9999 /// <summary>
100100 /// Get the singleton instance for can-collect mode.
@@ -105,7 +105,7 @@ public static SerializationMethodGeneratorManager CanCollect
105105 }
106106
107107#if ! NETSTANDARD1_1 && ! NETSTANDARD1_3
108- private static SerializationMethodGeneratorManager _canDump = new SerializationMethodGeneratorManager ( true , false , null ) ;
108+ private static SerializationMethodGeneratorManager _canDump = Create ( true , false , null ) ;
109109
110110 /// <summary>
111111 /// Get the singleton instance for can-dump mode.
@@ -118,7 +118,7 @@ public static SerializationMethodGeneratorManager CanDump
118118#endif // !NETSTANDARD1_1 && !NETSTANDARD1_3
119119#endif // !SILVERLIGHT
120120
121- private static SerializationMethodGeneratorManager _fast = new SerializationMethodGeneratorManager ( false , false , null ) ;
121+ private static SerializationMethodGeneratorManager _fast = Create ( false , false , null ) ;
122122
123123 /// <summary>
124124 /// Get the singleton instance for fast mode.
@@ -128,15 +128,27 @@ public static SerializationMethodGeneratorManager Fast
128128 get { return _fast ; }
129129 }
130130
131+ private static SerializationMethodGeneratorManager Create ( bool isDebuggable , bool isCollectable , AssemblyBuilder assemblyBuilder )
132+ {
133+ try
134+ {
135+ return new SerializationMethodGeneratorManager ( isDebuggable , isCollectable , assemblyBuilder ) ;
136+ }
137+ catch ( PlatformNotSupportedException )
138+ {
139+ return null ;
140+ }
141+ }
142+
131143 internal static void Refresh ( )
132144 {
133145#if ! SILVERLIGHT
134- _canCollect = new SerializationMethodGeneratorManager ( false , true , null ) ;
146+ _canCollect = Create ( false , true , null ) ;
135147#if ! NETSTANDARD1_1 && ! NETSTANDARD1_3
136- _canDump = new SerializationMethodGeneratorManager ( true , false , null ) ;
148+ _canDump = Create ( true , false , null ) ;
137149#endif // !NETSTANDARD1_1 && !NETSTANDARD1_3
138150#endif // !SILVERLIGHT
139- _fast = new SerializationMethodGeneratorManager ( false , false , null ) ;
151+ _fast = Create ( false , false , null ) ;
140152 }
141153
142154 // ReSharper disable once PrivateFieldCanBeConvertedToLocalVariable
0 commit comments