Scale back [Serializable] on CoreCLR types (#11765)
authorMorgan Brown <morganbr@users.noreply.github.com>
Wed, 24 May 2017 00:11:24 +0000 (17:11 -0700)
committerGitHub <noreply@github.com>
Wed, 24 May 2017 00:11:24 +0000 (17:11 -0700)
Removes SerializableAttribute from CoreCLR types not intended to be serializable as well as adding special handling to MulticastDelegate to prevent serializing delegates (which can't be correctly serialized cross platform/runtime).

258 files changed:
src/mscorlib/Resources/Strings.resx
src/mscorlib/System.Private.CoreLib.csproj
src/mscorlib/shared/System/ApplicationException.cs
src/mscorlib/shared/System/ArgumentException.cs
src/mscorlib/shared/System/ArgumentNullException.cs
src/mscorlib/shared/System/ArgumentOutOfRangeException.cs
src/mscorlib/shared/System/ArithmeticException.cs
src/mscorlib/shared/System/ArrayTypeMismatchException.cs
src/mscorlib/shared/System/AttributeUsageAttribute.cs
src/mscorlib/shared/System/BadImageFormatException.cs
src/mscorlib/shared/System/CLSCompliantAttribute.cs
src/mscorlib/shared/System/CharEnumerator.cs
src/mscorlib/shared/System/Collections/Generic/KeyNotFoundException.cs
src/mscorlib/shared/System/CurrentSystemTimeZone.cs
src/mscorlib/shared/System/DBNull.cs
src/mscorlib/shared/System/DataMisalignedException.cs
src/mscorlib/shared/System/DefaultBinder.cs
src/mscorlib/shared/System/Diagnostics/ConditionalAttribute.cs
src/mscorlib/shared/System/Diagnostics/Tracing/EventSourceException.cs
src/mscorlib/shared/System/DivideByZeroException.cs
src/mscorlib/shared/System/DllNotFoundException.cs
src/mscorlib/shared/System/DuplicateWaitObjectException.cs
src/mscorlib/shared/System/EntryPointNotFoundException.cs
src/mscorlib/shared/System/EventArgs.cs
src/mscorlib/shared/System/ExecutionEngineException.cs
src/mscorlib/shared/System/FieldAccessException.cs
src/mscorlib/shared/System/FlagsAttribute.cs
src/mscorlib/shared/System/FormatException.cs
src/mscorlib/shared/System/Globalization/ChineseLunisolarCalendar.cs
src/mscorlib/shared/System/Globalization/CultureNotFoundException.cs
src/mscorlib/shared/System/Globalization/DateTimeFormatInfo.cs
src/mscorlib/shared/System/Globalization/DaylightTime.cs
src/mscorlib/shared/System/Globalization/EastAsianLunisolarCalendar.cs
src/mscorlib/shared/System/Globalization/HebrewCalendar.cs
src/mscorlib/shared/System/Globalization/HijriCalendar.cs
src/mscorlib/shared/System/Globalization/JapaneseCalendar.cs
src/mscorlib/shared/System/Globalization/JapaneseLunisolarCalendar.cs
src/mscorlib/shared/System/Globalization/JulianCalendar.cs
src/mscorlib/shared/System/Globalization/KoreanCalendar.cs
src/mscorlib/shared/System/Globalization/KoreanLunisolarCalendar.cs
src/mscorlib/shared/System/Globalization/NumberFormatInfo.cs
src/mscorlib/shared/System/Globalization/PersianCalendar.cs
src/mscorlib/shared/System/Globalization/SortKey.cs
src/mscorlib/shared/System/Globalization/StringInfo.cs
src/mscorlib/shared/System/Globalization/TaiwanCalendar.cs
src/mscorlib/shared/System/Globalization/TaiwanLunisolarCalendar.cs
src/mscorlib/shared/System/Globalization/ThaiBuddhistCalendar.cs
src/mscorlib/shared/System/Globalization/UmAlQuraCalendar.cs
src/mscorlib/shared/System/IO/DirectoryNotFoundException.cs
src/mscorlib/shared/System/IO/EndOfStreamException.cs
src/mscorlib/shared/System/IO/FileLoadException.cs
src/mscorlib/shared/System/IO/FileNotFoundException.cs
src/mscorlib/shared/System/IO/PathTooLongException.cs
src/mscorlib/shared/System/IndexOutOfRangeException.cs
src/mscorlib/shared/System/InsufficientExecutionStackException.cs
src/mscorlib/shared/System/InvalidCastException.cs
src/mscorlib/shared/System/InvalidOperationException.cs
src/mscorlib/shared/System/InvalidProgramException.cs
src/mscorlib/shared/System/InvalidTimeZoneException.cs
src/mscorlib/shared/System/MarshalByRefObject.cs
src/mscorlib/shared/System/MemberAccessException.cs
src/mscorlib/shared/System/MethodAccessException.cs
src/mscorlib/shared/System/MissingMethodException.cs
src/mscorlib/shared/System/MulticastNotSupportedException.cs
src/mscorlib/shared/System/NotFiniteNumberException.cs
src/mscorlib/shared/System/NotImplementedException.cs
src/mscorlib/shared/System/NotSupportedException.cs
src/mscorlib/shared/System/NullReferenceException.cs
src/mscorlib/shared/System/ObjectDisposedException.cs
src/mscorlib/shared/System/ObsoleteAttribute.cs
src/mscorlib/shared/System/OperationCanceledException.cs
src/mscorlib/shared/System/OverflowException.cs
src/mscorlib/shared/System/PlatformNotSupportedException.cs
src/mscorlib/shared/System/Random.cs
src/mscorlib/shared/System/RankException.cs
src/mscorlib/shared/System/Reflection/AmbiguousMatchException.cs
src/mscorlib/shared/System/Reflection/CustomAttributeFormatException.cs
src/mscorlib/shared/System/Reflection/DefaultMemberAttribute.cs
src/mscorlib/shared/System/Reflection/InvalidFilterCriteriaException.cs
src/mscorlib/shared/System/Reflection/MemberInfoSerializationHolder.cs
src/mscorlib/shared/System/Reflection/Missing.cs
src/mscorlib/shared/System/Reflection/ParameterModifier.cs
src/mscorlib/shared/System/Reflection/Pointer.cs
src/mscorlib/shared/System/Reflection/ReflectionTypeLoadException.cs
src/mscorlib/shared/System/Reflection/StrongNameKeyPair.cs
src/mscorlib/shared/System/Reflection/TargetException.cs
src/mscorlib/shared/System/Reflection/TargetInvocationException.cs
src/mscorlib/shared/System/Reflection/TargetParameterCountException.cs
src/mscorlib/shared/System/Reflection/TypeDelegator.cs
src/mscorlib/shared/System/Resources/MissingManifestResourceException.cs
src/mscorlib/shared/System/Resources/MissingSatelliteAssemblyException.cs
src/mscorlib/shared/System/Runtime/CompilerServices/AsyncStateMachineAttribute.cs
src/mscorlib/shared/System/Runtime/CompilerServices/CompilationRelaxationsAttribute.cs
src/mscorlib/shared/System/Runtime/CompilerServices/CompilerGeneratedAttribute.cs
src/mscorlib/shared/System/Runtime/CompilerServices/CompilerGlobalScopeAttribute.cs
src/mscorlib/shared/System/Runtime/CompilerServices/DefaultDependencyAttribute.cs
src/mscorlib/shared/System/Runtime/CompilerServices/DependencyAttribute.cs
src/mscorlib/shared/System/Runtime/CompilerServices/FixedAddressValueTypeAttribute.cs
src/mscorlib/shared/System/Runtime/CompilerServices/IndexerNameAttribute.cs
src/mscorlib/shared/System/Runtime/CompilerServices/IteratorStateMachineAttribute.cs
src/mscorlib/shared/System/Runtime/CompilerServices/ReferenceAssemblyAttribute.cs
src/mscorlib/shared/System/Runtime/CompilerServices/RuntimeCompatibilityAttribute.cs
src/mscorlib/shared/System/Runtime/CompilerServices/StateMachineAttribute.cs
src/mscorlib/shared/System/Runtime/CompilerServices/StringFreezingAttribute.cs
src/mscorlib/shared/System/Runtime/CompilerServices/UnsafeValueTypeAttribute.cs
src/mscorlib/shared/System/Runtime/InteropServices/ExternalException.cs
src/mscorlib/shared/System/Runtime/Serialization/SerializationException.cs
src/mscorlib/shared/System/Runtime/Serialization/StreamingContext.cs
src/mscorlib/shared/System/Security/CryptographicException.cs
src/mscorlib/shared/System/Security/SecurityException.cs
src/mscorlib/shared/System/Security/VerificationException.cs
src/mscorlib/shared/System/StackOverflowException.cs
src/mscorlib/shared/System/SystemException.cs
src/mscorlib/shared/System/Text/ASCIIEncoding.cs
src/mscorlib/shared/System/Text/Decoder.cs
src/mscorlib/shared/System/Text/Encoder.cs
src/mscorlib/shared/System/Text/EncodingInfo.cs
src/mscorlib/shared/System/Text/EncodingNLS.cs
src/mscorlib/shared/System/Text/UTF32Encoding.cs
src/mscorlib/shared/System/Text/UTF8Encoding.cs
src/mscorlib/shared/System/Text/UnicodeEncoding.cs
src/mscorlib/shared/System/ThreadStaticAttribute.cs
src/mscorlib/shared/System/Threading/AbandonedMutexException.cs
src/mscorlib/shared/System/Threading/ExecutionContext.cs
src/mscorlib/shared/System/Threading/LockRecursionException.cs
src/mscorlib/shared/System/Threading/SemaphoreFullException.cs
src/mscorlib/shared/System/Threading/SynchronizationLockException.cs
src/mscorlib/shared/System/Threading/Tasks/TaskCanceledException.cs
src/mscorlib/shared/System/Threading/Tasks/TaskSchedulerException.cs
src/mscorlib/shared/System/Threading/ThreadAbortException.cs
src/mscorlib/shared/System/Threading/ThreadStartException.cs
src/mscorlib/shared/System/Threading/ThreadStateException.cs
src/mscorlib/shared/System/Threading/WaitHandleCannotBeOpenedException.cs
src/mscorlib/shared/System/TimeZoneNotFoundException.cs
src/mscorlib/shared/System/TimeoutException.cs
src/mscorlib/shared/System/TypeAccessException.cs
src/mscorlib/shared/System/TypeInitializationException.cs
src/mscorlib/shared/System/TypeUnloadedException.cs
src/mscorlib/shared/System/UnauthorizedAccessException.cs
src/mscorlib/shared/System/UnhandledExceptionEventArgs.cs
src/mscorlib/shared/System/UnitySerializationHolder.cs
src/mscorlib/shared/System/Void.cs
src/mscorlib/src/Microsoft/Win32/Win32Native.cs
src/mscorlib/src/System/AccessViolationException.cs
src/mscorlib/src/System/AppDomainSetup.cs
src/mscorlib/src/System/AppDomainUnloadedException.cs
src/mscorlib/src/System/Array.cs
src/mscorlib/src/System/ArraySegment.cs
src/mscorlib/src/System/Collections/Comparer.cs
src/mscorlib/src/System/Collections/CompatibleComparer.cs
src/mscorlib/src/System/Collections/Concurrent/ConcurrentQueue.cs
src/mscorlib/src/System/Collections/EmptyReadOnlyDictionaryInternal.cs
src/mscorlib/src/System/Collections/Generic/ArraySortHelper.cs
src/mscorlib/src/System/Collections/Generic/Comparer.cs
src/mscorlib/src/System/Collections/Generic/Dictionary.cs
src/mscorlib/src/System/Collections/Generic/List.cs
src/mscorlib/src/System/Collections/Hashtable.cs
src/mscorlib/src/System/Collections/ObjectModel/ReadOnlyDictionary.cs
src/mscorlib/src/System/Currency.cs
src/mscorlib/src/System/Delegate.cs
src/mscorlib/src/System/DelegateSerializationHolder.cs [deleted file]
src/mscorlib/src/System/Diagnostics/AssertFilter.cs
src/mscorlib/src/System/Diagnostics/Contracts/ContractsBCL.cs
src/mscorlib/src/System/Diagnostics/DebuggerAttributes.cs
src/mscorlib/src/System/Diagnostics/EditAndContinueHelper.cs
src/mscorlib/src/System/Diagnostics/LogSwitch.cs
src/mscorlib/src/System/Diagnostics/Stackframe.cs
src/mscorlib/src/System/Diagnostics/Stacktrace.cs
src/mscorlib/src/System/Empty.cs
src/mscorlib/src/System/Globalization/Calendar.cs
src/mscorlib/src/System/Globalization/CultureInfo.cs
src/mscorlib/src/System/Globalization/EncodingDataItem.Unix.cs
src/mscorlib/src/System/Globalization/EncodingDataItem.cs
src/mscorlib/src/System/Globalization/GregorianCalendar.cs
src/mscorlib/src/System/Globalization/GregorianCalendarHelper.cs
src/mscorlib/src/System/Globalization/RegionInfo.cs
src/mscorlib/src/System/Globalization/TextElementEnumerator.cs
src/mscorlib/src/System/Globalization/TextInfo.cs
src/mscorlib/src/System/IO/BinaryWriter.cs
src/mscorlib/src/System/IO/DriveNotFoundException.cs
src/mscorlib/src/System/IO/IOException.cs
src/mscorlib/src/System/IO/MemoryStream.cs
src/mscorlib/src/System/IO/Stream.cs
src/mscorlib/src/System/IO/StreamReader.cs
src/mscorlib/src/System/IO/TextReader.cs
src/mscorlib/src/System/InsufficientMemoryException.cs
src/mscorlib/src/System/MissingFieldException.cs
src/mscorlib/src/System/MissingMemberException.cs
src/mscorlib/src/System/MulticastDelegate.cs
src/mscorlib/src/System/Object.cs
src/mscorlib/src/System/OleAutBinder.cs
src/mscorlib/src/System/OutOfMemoryException.cs
src/mscorlib/src/System/Reflection/AssemblyName.cs
src/mscorlib/src/System/Reflection/CustomAttribute.cs
src/mscorlib/src/System/Reflection/Emit/EventToken.cs
src/mscorlib/src/System/Reflection/Emit/FieldToken.cs
src/mscorlib/src/System/Reflection/Emit/Label.cs
src/mscorlib/src/System/Reflection/Emit/MethodToken.cs
src/mscorlib/src/System/Reflection/Emit/ModuleBuilderData.cs
src/mscorlib/src/System/Reflection/Emit/ParameterToken.cs
src/mscorlib/src/System/Reflection/Emit/PropertyToken.cs
src/mscorlib/src/System/Reflection/Emit/StringToken.cs
src/mscorlib/src/System/Reflection/Emit/TypeToken.cs
src/mscorlib/src/System/Reflection/MdFieldInfo.cs
src/mscorlib/src/System/Reflection/MdImport.cs
src/mscorlib/src/System/Reflection/RtFieldInfo.cs
src/mscorlib/src/System/Reflection/RuntimeAssembly.cs
src/mscorlib/src/System/Reflection/RuntimeConstructorInfo.cs
src/mscorlib/src/System/Reflection/RuntimeEventInfo.cs
src/mscorlib/src/System/Reflection/RuntimeFieldInfo.cs
src/mscorlib/src/System/Reflection/RuntimeMethodInfo.cs
src/mscorlib/src/System/Reflection/RuntimeModule.cs
src/mscorlib/src/System/Reflection/RuntimeParameterInfo.cs
src/mscorlib/src/System/Reflection/RuntimePropertyInfo.cs
src/mscorlib/src/System/Resources/ResourceManager.cs
src/mscorlib/src/System/Resources/ResourceSet.cs
src/mscorlib/src/System/RtType.cs
src/mscorlib/src/System/Runtime/CompilerServices/CustomConstantAttribute.cs
src/mscorlib/src/System/Runtime/CompilerServices/DateTimeConstantAttribute.cs
src/mscorlib/src/System/Runtime/CompilerServices/DecimalConstantAttribute.cs
src/mscorlib/src/System/Runtime/CompilerServices/MethodImplAttribute.cs
src/mscorlib/src/System/Runtime/CompilerServices/RuntimeWrappedException.cs
src/mscorlib/src/System/Runtime/InteropServices/ArrayWithOffset.cs
src/mscorlib/src/System/Runtime/InteropServices/BStrWrapper.cs
src/mscorlib/src/System/Runtime/InteropServices/COMException.cs
src/mscorlib/src/System/Runtime/InteropServices/ComTypes/ITypeLib.cs
src/mscorlib/src/System/Runtime/InteropServices/CurrencyWrapper.cs
src/mscorlib/src/System/Runtime/InteropServices/DispatchWrapper.cs
src/mscorlib/src/System/Runtime/InteropServices/ErrorWrapper.cs
src/mscorlib/src/System/Runtime/InteropServices/InvalidComObjectException.cs
src/mscorlib/src/System/Runtime/InteropServices/InvalidOleVariantTypeException.cs
src/mscorlib/src/System/Runtime/InteropServices/MarshalDirectiveException.cs
src/mscorlib/src/System/Runtime/InteropServices/SEHException.cs
src/mscorlib/src/System/Runtime/InteropServices/SafeArrayRankMismatchException.cs
src/mscorlib/src/System/Runtime/InteropServices/SafeArrayTypeMismatchException.cs
src/mscorlib/src/System/Runtime/InteropServices/UnknownWrapper.cs
src/mscorlib/src/System/Runtime/InteropServices/VariantWrapper.cs
src/mscorlib/src/System/Runtime/InteropServices/WindowsRuntime/ConstantSplittableMap.cs
src/mscorlib/src/System/Runtime/InteropServices/WindowsRuntime/DictionaryKeyCollection.cs
src/mscorlib/src/System/Runtime/InteropServices/WindowsRuntime/DictionaryValueCollection.cs
src/mscorlib/src/System/Runtime/InteropServices/WindowsRuntime/IMapViewToIReadOnlyDictionaryAdapter.cs
src/mscorlib/src/System/RuntimeHandles.cs
src/mscorlib/src/System/Text/DecoderBestFitFallback.cs
src/mscorlib/src/System/Text/DecoderExceptionFallback.cs
src/mscorlib/src/System/Text/DecoderFallback.cs
src/mscorlib/src/System/Text/DecoderNLS.cs
src/mscorlib/src/System/Text/DecoderReplacementFallback.cs
src/mscorlib/src/System/Text/EncoderBestFitFallback.cs
src/mscorlib/src/System/Text/EncoderExceptionFallback.cs
src/mscorlib/src/System/Text/EncoderFallback.cs
src/mscorlib/src/System/Text/EncoderNLS.cs
src/mscorlib/src/System/Text/EncoderReplacementFallback.cs
src/mscorlib/src/System/Text/Encoding.cs
src/mscorlib/src/System/Text/Latin1Encoding.cs
src/mscorlib/src/System/Text/UTF7Encoding.cs
src/mscorlib/src/System/Threading/ThreadInterruptedException.cs
src/mscorlib/src/System/TypeLoadException.cs
src/mscorlib/src/System/Variant.cs

index d4fe409..cbf969e 100644 (file)
   <data name="Serialization_DateTimeTicksOutOfRange" xml:space="preserve">
     <value>Invalid serialized DateTime data. Ticks must be between DateTime.MinValue.Ticks and DateTime.MaxValue.Ticks.</value>
   </data>
+  <data name="Serialization_DelegatesNotSupported" xml:space="preserve">
+    <value>Serializing delegates is not supported on this platform.</value>
+  </data>
   <data name="Serialization_InsufficientDeserializationState" xml:space="preserve">
     <value>Insufficient state to deserialize the object. Missing field '{0}'. More information is needed.</value>
   </data>
index ccec658..662a771 100644 (file)
     <Compile Include="$(BclSourcesRoot)\System\Currency.cs" />
     <Compile Include="$(BclSourcesRoot)\System\Decimal.cs" />
     <Compile Include="$(BclSourcesRoot)\System\DefaultBinder.CanConvert.cs" />
-    <Compile Include="$(BclSourcesRoot)\System\DelegateSerializationHolder.cs" />
     <Compile Include="$(BclSourcesRoot)\System\Double.cs" />
     <Compile Include="$(BclSourcesRoot)\System\Empty.cs" />
     <Compile Include="$(BclSourcesRoot)\System\Enum.cs" />
     <Win32Resource Condition="'$(GenerateNativeVersionInfo)'=='true'">$(IntermediateOutputPath)\System.Private.CoreLib.res</Win32Resource>
   </PropertyGroup>
   <Import Project="GenerateCompilerResponseFile.targets" />
-</Project>
+</Project>
\ No newline at end of file
index 900feb5..89c665c 100644 (file)
@@ -23,7 +23,6 @@ namespace System
     // ApplicationException extends but adds no new functionality to 
     // RecoverableException.
     // 
-    [Serializable]
     public class ApplicationException : Exception
     {
         // Creates a new ApplicationException with its message string set to
index 96afbe1..ce045f1 100644 (file)
@@ -20,7 +20,6 @@ namespace System
     // the contract of the method.  Ideally it should give a meaningful error
     // message describing what was wrong and which parameter is incorrect.
     // 
-    [Serializable]
     public class ArgumentException : SystemException
     {
         private String _paramName;
index 3a86223..343cadc 100644 (file)
@@ -18,7 +18,6 @@ namespace System
     // The ArgumentException is thrown when an argument 
     // is null when it shouldn't be.
     // 
-    [Serializable]
     public class ArgumentNullException : ArgumentException
     {
         // Creates a new ArgumentNullException with its message 
index eeeadcb..08592aa 100644 (file)
@@ -18,7 +18,6 @@ namespace System
 {
     // The ArgumentOutOfRangeException is thrown when an argument 
     // is outside the legal range for that argument.  
-    [Serializable]
     public class ArgumentOutOfRangeException : ArgumentException
     {
         private Object _actualValue;
index 081ba45..cd77965 100644 (file)
@@ -18,7 +18,6 @@ namespace System
     // The ArithmeticException is thrown when overflow or underflow
     // occurs.
     // 
-    [Serializable]
     public class ArithmeticException : SystemException
     {
         // Creates a new ArithmeticException with its message string set to
index 3e941fd..b6ce5fa 100644 (file)
@@ -18,7 +18,6 @@ namespace System
     // The ArrayMismatchException is thrown when an attempt to store
     // an object of the wrong type within an array occurs.
     // 
-    [Serializable]
     public class ArrayTypeMismatchException : SystemException
     {
         // Creates a new ArrayMismatchException with its message string set to
index 6f9aeb2..219dc43 100644 (file)
@@ -16,7 +16,6 @@ using System.Reflection;
 namespace System
 {
     /* By default, attributes are inherited and multiple attributes are not allowed */
-    [Serializable]
     [AttributeUsage(AttributeTargets.Class, Inherited = true)]
     public sealed class AttributeUsageAttribute : Attribute
     {
index 150330b..2ceaa8b 100644 (file)
@@ -17,7 +17,6 @@ using System.Runtime.Serialization;
 
 namespace System
 {
-    [Serializable]
     public partial class BadImageFormatException : SystemException
     {
         private String _fileName;  // The name of the corrupt PE file.
index e03600d..d895b5a 100644 (file)
@@ -13,7 +13,6 @@
 
 namespace System
 {
-    [Serializable]
     [AttributeUsage(AttributeTargets.All, Inherited = true, AllowMultiple = false)]
     public sealed class CLSCompliantAttribute : Attribute
     {
index 4dbd5cd..ea9915a 100644 (file)
@@ -17,7 +17,6 @@ using System.Collections.Generic;
 
 namespace System
 {
-    [Serializable]
     public sealed class CharEnumerator : IEnumerator, IEnumerator<char>, IDisposable, ICloneable
     {
         private String _str;
index 1fca773..fa4de83 100644 (file)
@@ -7,7 +7,6 @@ using System.Runtime.Serialization;
 
 namespace System.Collections.Generic
 {
-    [Serializable]
     public class KeyNotFoundException : SystemException
     {
         public KeyNotFoundException()
index 2d84839..3f17d6f 100644 (file)
@@ -28,7 +28,6 @@ using System.Runtime.Versioning;
 namespace System
 {
     [Obsolete("System.CurrentSystemTimeZone has been deprecated.  Please investigate the use of System.TimeZoneInfo.Local instead.")]
-    [Serializable]
     internal partial class CurrentSystemTimeZone : TimeZone
     {
         // Standard offset in ticks to the Universal time if
index 486eb72..507cccb 100644 (file)
@@ -6,7 +6,6 @@ using System.Runtime.Serialization;
 
 namespace System
 {
-    [Serializable]
     public sealed class DBNull : ISerializable, IConvertible
     {
         private DBNull()
index b1991a0..9c02fc2 100644 (file)
@@ -13,7 +13,6 @@ using System.Runtime.Serialization;
 
 namespace System
 {
-    [Serializable]
     public sealed class DataMisalignedException : SystemException
     {
         public DataMisalignedException()
index 3b46d5f..9adf702 100644 (file)
@@ -8,8 +8,6 @@ using CultureInfo = System.Globalization.CultureInfo;
 
 namespace System
 {
-    //Marked serializable even though it has no state.
-    [Serializable]
 #if CORECLR
     internal
 #else
index d5bca6e..416625b 100644 (file)
@@ -4,7 +4,6 @@
 
 namespace System.Diagnostics
 {
-    [Serializable]
     [AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, AllowMultiple = true)]
     public sealed class ConditionalAttribute : Attribute
     {
index 88b8da9..73e32aa 100644 (file)
@@ -18,9 +18,9 @@ namespace System.Diagnostics.Tracing
     /// <summary>
     /// Exception that is thrown when an error occurs during EventSource operation.
     /// </summary>
-#if !ES_BUILD_PCL
+#if !CORECLR && !ES_BUILD_PN && !ES_BUILD_PCL && !CORERT
     [Serializable]
-#endif
+#endif // !CORECLR && !ES_BUILD_PN && !ES_BUILD_PCL && !CORERT
     public class EventSourceException : Exception
     {
         /// <summary>
index 4abd43a..f5911f2 100644 (file)
@@ -15,7 +15,6 @@ using System.Runtime.Serialization;
 
 namespace System
 {
-    [Serializable]
     public class DivideByZeroException : ArithmeticException
     {
         public DivideByZeroException()
index c0b3432..fc63bc5 100644 (file)
@@ -16,7 +16,6 @@ using System.Runtime.Serialization;
 
 namespace System
 {
-    [Serializable]
     public class DllNotFoundException : TypeLoadException
     {
         public DllNotFoundException()
index da29e2a..d9075df 100644 (file)
@@ -18,7 +18,6 @@ namespace System
     // The DuplicateWaitObjectException is thrown when an object 
     // appears more than once in the list of objects to WaitAll or WaitAny.
     // 
-    [Serializable]
     public class DuplicateWaitObjectException : ArgumentException
     {
         private static volatile String s_duplicateWaitObjectMessage = null;
index 835d334..0859eb4 100644 (file)
@@ -16,7 +16,6 @@ using System.Runtime.Serialization;
 
 namespace System
 {
-    [Serializable]
     public class EntryPointNotFoundException : TypeLoadException
     {
         public EntryPointNotFoundException()
index c035661..be12af2 100644 (file)
@@ -7,7 +7,6 @@ using System;
 namespace System
 {
     // The base class for all event classes.
-    [Serializable]
     public class EventArgs
     {
         public static readonly EventArgs Empty = new EventArgs();
index bebfd49..ae3a8db 100644 (file)
@@ -21,7 +21,6 @@ using System.Runtime.Serialization;
 namespace System
 {
     [Obsolete("This type previously indicated an unspecified fatal error in the runtime. The runtime no longer raises this exception so this type is obsolete.")]
-    [Serializable]
     public sealed class ExecutionEngineException : SystemException
     {
         public ExecutionEngineException()
index ac62c0f..109bd77 100644 (file)
@@ -13,7 +13,6 @@ using System.Runtime.Serialization;
 
 namespace System
 {
-    [Serializable]
     public class FieldAccessException : MemberAccessException
     {
         public FieldAccessException()
index 5f8c108..4f3ab36 100644 (file)
@@ -11,7 +11,6 @@ namespace System
     // should be treated as a bitfield (or set of flags).
     // An IDE may use this information to provide a richer
     // development experience.
-    [Serializable]
     [AttributeUsage(AttributeTargets.Enum, Inherited = false)]
     public class FlagsAttribute : Attribute
     {
index c5758e1..68e1f4f 100644 (file)
@@ -15,7 +15,6 @@ using System.Runtime.Serialization;
 
 namespace System
 {
-    [Serializable]
     public class FormatException : SystemException
     {
         public FormatException()
index 404add0..e09011a 100644 (file)
@@ -14,7 +14,6 @@ namespace System.Globalization
     **      ChineseLunisolar   1901/01/01          2100/12/29
     */
 
-    [Serializable]
     public class ChineseLunisolarCalendar : EastAsianLunisolarCalendar
     {
         //
index 929f4bb..2b333ee 100644 (file)
@@ -6,7 +6,6 @@ using System.Runtime.Serialization;
 
 namespace System.Globalization
 {
-    [Serializable]
     public class CultureNotFoundException : ArgumentException
     {
         private string _invalidCultureName; // unrecognized culture name
index d3f1ea9..5d3239e 100644 (file)
@@ -49,7 +49,6 @@ namespace System.Globalization
     }
 
 
-    [Serializable]
     public sealed class DateTimeFormatInfo : IFormatProvider, ICloneable
     {
         // cache for the invariant culture.
index b3c70e1..10f074d 100644 (file)
@@ -5,7 +5,6 @@
 namespace System.Globalization
 {
     // This class represents a starting/ending time for a period of daylight saving time.
-    [Serializable]
     public class DaylightTime
     {
         private readonly DateTime _start;
index d06b13c..0697b60 100644 (file)
@@ -6,7 +6,6 @@ using System.Diagnostics.Contracts;
 
 namespace System.Globalization
 {
-    [Serializable]
     public abstract class EastAsianLunisolarCalendar : Calendar
     {
         internal const int LeapMonth = 0;
index b4f54f8..6ba4f08 100644 (file)
@@ -62,7 +62,6 @@ namespace System.Globalization
     // Gregorian to Hebrew Lunar from 1583 to 2239.
 
 
-    [Serializable]
     public class HebrewCalendar : Calendar
     {
         public static readonly int HebrewEra = 1;
index cafde5f..125248a 100644 (file)
@@ -42,7 +42,6 @@ namespace System.Globalization
     **      Hijri       0001/01/01   9666/04/03
     */
 
-    [Serializable]
     public partial class HijriCalendar : Calendar
     {
         public static readonly int HijriEra = 1;
index 4655e08..0db1e65 100644 (file)
@@ -36,7 +36,6 @@ namespace System.Globalization
     ============================================================================*/
 
 
-    [Serializable]
     public partial class JapaneseCalendar : Calendar
     {
         internal static readonly DateTime calendarMinValue = new DateTime(1868, 9, 8);
index 95e87f8..a90c4e8 100644 (file)
@@ -14,7 +14,6 @@ namespace System.Globalization
     **      JapaneseLunisolar      1960/01/01          2049/12/29
     */
 
-    [Serializable]
     public class JapaneseLunisolarCalendar : EastAsianLunisolarCalendar
     {
         //
index f4678c1..8d94290 100644 (file)
@@ -17,7 +17,6 @@ namespace System.Globalization
     //*      Gregorian   0001/01/01   9999/12/31
     //*      Julia       0001/01/03   9999/10/19
 
-    [Serializable]
     public class JulianCalendar : Calendar
     {
         public static readonly int JulianEra = 1;
index b962b1c..ef7495f 100644 (file)
@@ -23,7 +23,6 @@ namespace System.Globalization
     ============================================================================*/
 
 
-    [Serializable]
     public class KoreanCalendar : Calendar
     {
         //
index d4c7163..8364532 100644 (file)
@@ -14,7 +14,6 @@ namespace System.Globalization
     **      KoreanLunisolar    918/01/01          2050/13/29
     */
 
-    [Serializable]
     public class KoreanLunisolarCalendar : EastAsianLunisolarCalendar
     {
         //
index 179a7f6..9fea694 100644 (file)
@@ -41,7 +41,6 @@ namespace System.Globalization
     // CurrencySymbol            "$"      String used as local monetary symbol.
     //
 
-    [Serializable]
     sealed public class NumberFormatInfo : IFormatProvider, ICloneable
     {
         // invariantInfo is constant irrespective of your current culture.
index 445bbd6..78a081e 100644 (file)
@@ -19,7 +19,6 @@ namespace System.Globalization
      **      Persian     0001/01/01   9378/10/13
      */
 
-    [Serializable]
     public class PersianCalendar : Calendar
     {
         public static readonly int PersianEra = 1;
index c6c51a0..d65e097 100644 (file)
@@ -19,7 +19,6 @@ using System.Diagnostics.Contracts;
 
 namespace System.Globalization
 {
-    [Serializable]
     public partial class SortKey
     {
         //--------------------------------------------------------------------//
index ca57b67..87d1b9f 100644 (file)
@@ -19,7 +19,6 @@ using System.Runtime.Serialization;
 
 namespace System.Globalization
 {
-    [Serializable]
     public class StringInfo
     {
         [OptionalField(VersionAdded = 2)] 
index 2e735e0..ec41881 100644 (file)
@@ -21,7 +21,6 @@ namespace System.Globalization
     **      Taiwan      01/01/01    8088/12/31
     ============================================================================*/
 
-    [Serializable]
     public class TaiwanCalendar : Calendar
     {
         //
index 8ba1f27..1e2ec62 100644 (file)
@@ -15,7 +15,6 @@ namespace System.Globalization
     **      TaiwanLunisolar     1912/01/01  2050/13/29
     */
 
-    [Serializable]
     public class TaiwanLunisolarCalendar : EastAsianLunisolarCalendar
     {
         // Since
index 9e6e304..e1646bf 100644 (file)
@@ -20,7 +20,6 @@ namespace System.Globalization
     **      Thai        0544/01/01  10542/12/31
     ============================================================================*/
 
-    [Serializable]
     public class ThaiBuddhistCalendar : Calendar
     {
         // Initialize our era info.
index b7ba6d0..c03ac23 100644 (file)
@@ -15,7 +15,6 @@ namespace System.Globalization
     **      UmAlQura    1318/01/01   1500/12/30
     */
 
-    [Serializable]
     public partial class UmAlQuraCalendar : Calendar
     {
         internal const int MinCalendarYear = 1318;
index 786c210..04e3791 100644 (file)
@@ -12,7 +12,6 @@ namespace System.IO
      * the Win32 errorcode-as-HRESULT ERROR_PATH_NOT_FOUND (0x80070003) 
      * and STG_E_PATHNOTFOUND (0x80030003).
      */
-    [Serializable]
     public class DirectoryNotFoundException : IOException
     {
         public DirectoryNotFoundException()
index 7c4b2b7..df9ea17 100644 (file)
@@ -6,7 +6,6 @@ using System.Runtime.Serialization;
 
 namespace System.IO
 {
-    [Serializable]
     public class EndOfStreamException : IOException
     {
         public EndOfStreamException()
index b5e197c..dc8cf0f 100644 (file)
@@ -6,7 +6,6 @@ using System.Runtime.Serialization;
 
 namespace System.IO
 {
-    [Serializable]
     public partial class FileLoadException : IOException
     {
         public FileLoadException()
index 5d86b8f..2a94665 100644 (file)
@@ -7,7 +7,6 @@ using System.Runtime.Serialization;
 namespace System.IO
 {
     // Thrown when trying to access a file that doesn't exist on disk.
-    [Serializable]
     public partial class FileNotFoundException : IOException
     {
         public FileNotFoundException()
index 613af05..46e9bd6 100644 (file)
@@ -8,7 +8,6 @@ using System.Runtime.Serialization;
 
 namespace System.IO
 {
-    [Serializable]
     public class PathTooLongException : IOException
     {
         public PathTooLongException()
index 4969c2b..0225a60 100644 (file)
@@ -15,7 +15,6 @@ using System.Runtime.Serialization;
 
 namespace System
 {
-    [Serializable]
     public sealed class IndexOutOfRangeException : SystemException
     {
         public IndexOutOfRangeException()
index b9a4a12..be647e3 100644 (file)
@@ -6,7 +6,6 @@ using System.Runtime.Serialization;
 
 namespace System
 {
-    [Serializable]
     public sealed class InsufficientExecutionStackException : SystemException
     {
         public InsufficientExecutionStackException()
index 01d92b2..88ee399 100644 (file)
@@ -12,7 +12,6 @@ using System.Runtime.Serialization;
 
 namespace System
 {
-    [Serializable]
     public class InvalidCastException : SystemException
     {
         public InvalidCastException()
index 24a08c8..ab01183 100644 (file)
@@ -16,7 +16,6 @@ using System.Runtime.Serialization;
 
 namespace System
 {
-    [Serializable]
     public class InvalidOperationException : SystemException
     {
         public InvalidOperationException()
index 401b3a0..a5f798c 100644 (file)
@@ -15,7 +15,6 @@ using System.Runtime.Serialization;
 
 namespace System
 {
-    [Serializable]
     public sealed class InvalidProgramException : SystemException
     {
         public InvalidProgramException()
index 8f0751c..09eed88 100644 (file)
@@ -6,7 +6,6 @@ using System.Runtime.Serialization;
 
 namespace System
 {
-    [Serializable]
     public class InvalidTimeZoneException : Exception
     {
         public InvalidTimeZoneException()
index 1f1739b..390b728 100644 (file)
@@ -4,7 +4,6 @@
 
 namespace System
 {
-    [Serializable]
     public abstract class MarshalByRefObject
     {
         protected MarshalByRefObject()
index 54eee67..074699d 100644 (file)
@@ -15,7 +15,6 @@ namespace System
     // The MemberAccessException is thrown when trying to access a class
     // member fails.
     // 
-    [Serializable]
     public class MemberAccessException : SystemException
     {
         // Creates a new MemberAccessException with its message string set to
index 2ecbd14..515458c 100644 (file)
@@ -13,7 +13,6 @@ using System.Runtime.Serialization;
 
 namespace System
 {
-    [Serializable]
     public class MethodAccessException : MemberAccessException
     {
         public MethodAccessException()
index 07d4289..2bb92e1 100644 (file)
@@ -15,7 +15,6 @@ using System.Runtime.Serialization;
 
 namespace System
 {
-    [Serializable]
     public class MissingMethodException : MissingMemberException
     {
         public MissingMethodException()
index 4fcaa98..5b1f41e 100644 (file)
@@ -11,7 +11,6 @@ using System.Runtime.Serialization;
 
 namespace System
 {
-    [Serializable]
     public sealed class MulticastNotSupportedException : SystemException
     {
         public MulticastNotSupportedException()
index 5bc8df1..f14f3a3 100644 (file)
@@ -6,7 +6,6 @@ using System.Runtime.Serialization;
 
 namespace System
 {
-    [Serializable]
     public class NotFiniteNumberException : ArithmeticException
     {
         private double _offendingNumber;
index 4d141ea..7d562ed 100644 (file)
@@ -16,7 +16,6 @@ using System.Runtime.Serialization;
 
 namespace System
 {
-    [Serializable]
     public class NotImplementedException : SystemException
     {
         public NotImplementedException()
index 21b2d54..6d68b07 100644 (file)
@@ -15,7 +15,6 @@ using System.Runtime.Serialization;
 
 namespace System
 {
-    [Serializable]
     public class NotSupportedException : SystemException
     {
         public NotSupportedException()
index 0aa5c61..fb98868 100644 (file)
@@ -15,7 +15,6 @@ using System.Runtime.Serialization;
 
 namespace System
 {
-    [Serializable]
     public class NullReferenceException : SystemException
     {
         public NullReferenceException()
index abb7c89..abeefca 100644 (file)
@@ -11,7 +11,6 @@ namespace System
     ///    <para> The exception that is thrown when accessing an object that was
     ///       disposed.</para>
     /// </devdoc>
-    [Serializable]
     public class ObjectDisposedException : InvalidOperationException
     {
         private String _objectName;
index f183685..a63db13 100644 (file)
@@ -21,7 +21,6 @@ namespace System
     //   error. (this would be used if the actual implementation of the obsolete 
     //   method's implementation had changed).
     // 
-    [Serializable]
     [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Enum |
         AttributeTargets.Interface | AttributeTargets.Constructor | AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Delegate
         , Inherited = false)]
index 8265617..cd1f328 100644 (file)
@@ -17,7 +17,6 @@ using System.Threading;
 
 namespace System
 {
-    [Serializable]
     public class OperationCanceledException : SystemException
     {
         [NonSerialized]
index e28c688..d32df8b 100644 (file)
@@ -15,7 +15,6 @@ using System.Runtime.Serialization;
 
 namespace System
 {
-    [Serializable]
     public class OverflowException : ArithmeticException
     {
         public OverflowException()
index d2370b3..fa708c9 100644 (file)
@@ -15,7 +15,6 @@ using System.Runtime.Serialization;
 
 namespace System
 {
-    [Serializable]
     public class PlatformNotSupportedException : NotSupportedException
     {
         public PlatformNotSupportedException()
index a66a9ea..4affed8 100644 (file)
@@ -18,7 +18,6 @@ using System.Diagnostics.Contracts;
 
 namespace System
 {
-    [Serializable]
     public class Random
     {
         //
index 612d0f0..8762aa2 100644 (file)
@@ -16,7 +16,6 @@ using System.Runtime.Serialization;
 
 namespace System
 {
-    [Serializable]
     public class RankException : SystemException
     {
         public RankException()
index 459a19c..4e14e1f 100644 (file)
@@ -6,7 +6,6 @@ using System.Runtime.Serialization;
 
 namespace System.Reflection
 {
-    [Serializable]
     public sealed class AmbiguousMatchException : SystemException
     {
         public AmbiguousMatchException()
index 6e11540..29bf7f0 100644 (file)
@@ -6,7 +6,6 @@ using System.Runtime.Serialization;
 
 namespace System.Reflection
 {
-    [Serializable]
     public class CustomAttributeFormatException : FormatException
     {
         public CustomAttributeFormatException()
index 3511433..585fdb0 100644 (file)
@@ -4,7 +4,6 @@
 
 namespace System.Reflection
 {
-    [Serializable]
     [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Interface)]
     public sealed class DefaultMemberAttribute : Attribute
     {
index e3f882c..c7644b8 100644 (file)
@@ -6,7 +6,6 @@ using System.Runtime.Serialization;
 
 namespace System.Reflection
 {
-    [Serializable]
     public class InvalidFilterCriteriaException : ApplicationException
     {
         public InvalidFilterCriteriaException()
index fa32d43..1782910 100644 (file)
@@ -6,7 +6,6 @@ using System.Runtime.Serialization;
 
 namespace System.Reflection
 {
-    [Serializable]
     public sealed class Missing : ISerializable
     {
         public static readonly Missing Value = new Missing();
index 18d6cf6..640fee2 100644 (file)
@@ -4,7 +4,6 @@
 
 namespace System.Reflection
 {
-    [Serializable]
     public struct ParameterModifier
     {
         private readonly bool[] _byRef;
index 13a5eff..d93e5b0 100644 (file)
@@ -7,7 +7,6 @@ using System.Runtime.Serialization;
 
 namespace System.Reflection
 {
-    [Serializable]
     [CLSCompliant(false)]
     public sealed unsafe class Pointer : ISerializable
     {
index 772620c..1a59c20 100644 (file)
@@ -6,7 +6,6 @@ using System.Runtime.Serialization;
 
 namespace System.Reflection
 {
-    [Serializable]
     public sealed class ReflectionTypeLoadException : SystemException, ISerializable
     {
         public ReflectionTypeLoadException(Type[] classes, Exception[] exceptions)
index c04ddd6..03fbb91 100644 (file)
@@ -7,7 +7,6 @@ using System.Runtime.Serialization;
 
 namespace System.Reflection
 {
-    [Serializable]
     public class StrongNameKeyPair : IDeserializationCallback, ISerializable
     {
         private bool _keyPairExported;
index 03f8730..16b4a14 100644 (file)
@@ -6,7 +6,6 @@ using System.Runtime.Serialization;
 
 namespace System.Reflection
 {
-    [Serializable]
     public class TargetException : ApplicationException
     {
         public TargetException()
index e934e5b..8c98e5c 100644 (file)
@@ -6,7 +6,6 @@ using System.Runtime.Serialization;
 
 namespace System.Reflection
 {
-    [Serializable]
     public sealed class TargetInvocationException : ApplicationException
     {
         public TargetInvocationException(Exception inner)
index c360454..befe6b2 100644 (file)
@@ -6,7 +6,6 @@ using System.Runtime.Serialization;
 
 namespace System.Reflection
 {
-    [Serializable]
     public sealed class TargetParameterCountException : ApplicationException
     {
         public TargetParameterCountException()
index a301ddc..bcbff05 100644 (file)
@@ -10,7 +10,6 @@ using CultureInfo = System.Globalization.CultureInfo;
 
 namespace System.Reflection
 {
-    [Serializable]
     public class TypeDelegator : TypeInfo
     {
         public override bool IsAssignableFrom(TypeInfo typeInfo)
index 70f41f4..ce2c4c7 100644 (file)
@@ -7,7 +7,6 @@ using System.Runtime.Serialization;
 
 namespace System.Resources
 {
-    [Serializable]
     public class MissingManifestResourceException : SystemException
     {
         public MissingManifestResourceException()
index b343e0c..8a9289b 100644 (file)
@@ -20,7 +20,6 @@ using System.Runtime.Serialization;
 
 namespace System.Resources
 {
-    [Serializable]
     public class MissingSatelliteAssemblyException : SystemException
     {
         private String _cultureName;
index 198ed3d..66c9175 100644 (file)
@@ -4,7 +4,6 @@
 
 namespace System.Runtime.CompilerServices
 {
-    [Serializable]
     [AttributeUsage(AttributeTargets.Method, Inherited = false, AllowMultiple = false)]
     public sealed class AsyncStateMachineAttribute : StateMachineAttribute
     {
index 1f100bd..d6da23f 100644 (file)
@@ -4,7 +4,6 @@
 
 namespace System.Runtime.CompilerServices
 {
-    [Serializable]
     [AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Module | AttributeTargets.Class | AttributeTargets.Method)]
     public class CompilationRelaxationsAttribute : Attribute
     {
index 3da2a95..1c05abd 100644 (file)
@@ -4,7 +4,6 @@
 
 namespace System.Runtime.CompilerServices
 {
-    [Serializable]
     [AttributeUsage(AttributeTargets.All, Inherited = true)]
     public sealed class CompilerGeneratedAttribute : Attribute
     {
index 22fa694..752295e 100644 (file)
@@ -6,7 +6,6 @@ namespace System.Runtime.CompilerServices
 {
     // Attribute used to communicate to the VS7 debugger that a class should be treated as if it has global scope.
     
-    [Serializable]
     [AttributeUsage(AttributeTargets.Class)]
     public class CompilerGlobalScopeAttribute : Attribute
     {
index f5419d4..4c1f489 100644 (file)
@@ -4,7 +4,6 @@
 
 namespace System.Runtime.CompilerServices
 {
-    [Serializable]
     [AttributeUsage(AttributeTargets.Assembly)]
     public sealed class DefaultDependencyAttribute : Attribute
     {
index 56f4242..0fe07ed 100644 (file)
@@ -4,7 +4,6 @@
 
 namespace System.Runtime.CompilerServices
 {
-    [Serializable]
     [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
     public sealed class DependencyAttribute : Attribute
     {
index baf5824..8dc6c43 100644 (file)
@@ -4,7 +4,6 @@
 
 namespace System.Runtime.CompilerServices
 {
-    [Serializable]
     [AttributeUsage(AttributeTargets.Field)]
     public sealed class FixedAddressValueTypeAttribute : Attribute
     {
index 65653a4..ea843b3 100644 (file)
@@ -4,7 +4,6 @@
 
 namespace System.Runtime.CompilerServices
 {
-    [Serializable]
     [AttributeUsage(AttributeTargets.Property, Inherited = true)]
     public sealed class IndexerNameAttribute : Attribute
     {
index 5ac3918..53afc95 100644 (file)
@@ -4,7 +4,6 @@
 
 namespace System.Runtime.CompilerServices
 {
-    [Serializable]
     [AttributeUsage(AttributeTargets.Method, Inherited = false, AllowMultiple = false)]
     public sealed class IteratorStateMachineAttribute : StateMachineAttribute
     {
index 6e307e7..f3842ec 100644 (file)
@@ -15,7 +15,6 @@
 
 namespace System.Runtime.CompilerServices
 {
-    [Serializable]
     [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = false)]
     public sealed class ReferenceAssemblyAttribute : Attribute
     {
index 55dba0d..609c560 100644 (file)
@@ -13,7 +13,6 @@
 
 namespace System.Runtime.CompilerServices
 {
-    [Serializable]
     [AttributeUsage(AttributeTargets.Assembly, Inherited = false, AllowMultiple = false)]
     public sealed class RuntimeCompatibilityAttribute : Attribute
     {
index 94ed5b5..e081d63 100644 (file)
@@ -6,7 +6,6 @@ using System;
 
 namespace System.Runtime.CompilerServices
 {
-    [Serializable]
     [AttributeUsage(AttributeTargets.Method, Inherited = false, AllowMultiple = false)]
     public class StateMachineAttribute : Attribute
     {
index 7772a1a..25a8bfb 100644 (file)
@@ -6,7 +6,6 @@ namespace System.Runtime.CompilerServices
 {
     // Custom attribute to indicate that strings should be frozen.
     
-    [Serializable]
     [AttributeUsage(AttributeTargets.Assembly, Inherited = false)]
     public sealed class StringFreezingAttribute : Attribute
     {
index 162676e..f049c89 100644 (file)
@@ -4,7 +4,6 @@
 
 namespace System.Runtime.CompilerServices
 {
-    [Serializable]
     [AttributeUsage(AttributeTargets.Struct)]
     sealed public class UnsafeValueTypeAttribute : Attribute
     {
index d7bde79..f349a5b 100644 (file)
@@ -21,7 +21,6 @@ namespace System.Runtime.InteropServices
     // Base exception for COM Interop errors &; Structured Exception Handler
     // exceptions.
     // 
-    [Serializable]
     public class ExternalException : SystemException
     {
         public ExternalException()
index a359daf..b11daa5 100644 (file)
@@ -6,7 +6,6 @@ using System.Runtime.Serialization;
 
 namespace System.Runtime.Serialization
 {
-    [Serializable]
     public class SerializationException : SystemException
     {
         private static String s_nullMessage = SR.SerializationException;
index 1026a87..4fe90ca 100644 (file)
@@ -4,7 +4,6 @@
 
 namespace System.Runtime.Serialization
 {
-    [Serializable]
     public struct StreamingContext
     {
         private readonly object _additionalContext;
index 89cb658..62613c9 100644 (file)
@@ -7,7 +7,6 @@ using System.Runtime.Serialization;
 
 namespace System.Security.Cryptography
 {
-    [Serializable]
     public class CryptographicException : SystemException
     {
         public CryptographicException()
index 86e3cd4..6baba64 100644 (file)
@@ -7,7 +7,6 @@ using System.Runtime.Serialization;
 
 namespace System.Security
 {
-    [Serializable]
     public class SecurityException : SystemException
     {
         public SecurityException()
index 9641e1a..5a93b35 100644 (file)
@@ -6,7 +6,6 @@ using System.Runtime.Serialization;
 
 namespace System.Security
 {
-    [Serializable]
     public class VerificationException : SystemException
     {
         public VerificationException()
index 0a875e7..2975253 100644 (file)
@@ -15,7 +15,6 @@ using System.Runtime.Serialization;
 
 namespace System
 {
-    [Serializable]
     public sealed class StackOverflowException : SystemException
     {
         public StackOverflowException()
index f4779a2..9961df3 100644 (file)
@@ -6,7 +6,6 @@ using System.Runtime.Serialization;
 
 namespace System
 {
-    [Serializable]
     public class SystemException : Exception
     {
         public SystemException()
index e5c1194..628ec9a 100644 (file)
@@ -19,11 +19,9 @@ namespace System.Text
     // Note: IsAlwaysNormalized remains false because 1/2 the code points are unassigned, so they'd
     //       use fallbacks, and we cannot guarantee that fallbacks are normalized.
 
-    [Serializable]
     public class ASCIIEncoding : Encoding
     {
         // Allow for devirtualization (see https://github.com/dotnet/coreclr/pull/9230)
-        [Serializable]
         internal sealed class ASCIIEncodingSealed : ASCIIEncoding { }
 
         // Used by Encoding.ASCII for lazy initialization
index b2a0030..aefe1f6 100644 (file)
@@ -21,7 +21,6 @@ namespace System.Text
     // class are typically obtained through calls to the GetDecoder method
     // of Encoding objects.
     //
-    [Serializable]
     public abstract class Decoder
     {
         internal DecoderFallback m_fallback = null;
index e4e9176..c4b54ce 100644 (file)
@@ -21,7 +21,6 @@ namespace System.Text
     // class are typically obtained through calls to the GetEncoder method
     // of Encoding objects.
     //
-    [Serializable]
     public abstract class Encoder
     {
         internal EncoderFallback m_fallback = null;
index 360dd7f..99995f7 100644 (file)
@@ -7,7 +7,6 @@ using System.Text;
 
 namespace System.Text
 {
-    [Serializable]
     public sealed class EncodingInfo
     {
         private int iCodePage;          // Code Page #
index 205ae26..835bf8f 100644 (file)
@@ -23,7 +23,6 @@ namespace System.Text
     // So if you change the wrappers in this class, you must change the wrappers in the other classes
     // as well because they should have the same behavior.
 
-    [Serializable]
     internal abstract class EncodingNLS : Encoding
     {
         protected EncodingNLS(int codePage) : base(codePage)
index e4cd6c9..450aee2 100644 (file)
@@ -21,7 +21,6 @@ namespace System.Text
     // mark is used mostly to distinguish UTF-32 text from other encodings, and doesn't
     // switch the byte orderings.
 
-    [Serializable]
     public sealed class UTF32Encoding : Encoding
     {
         /*
@@ -1200,7 +1199,6 @@ namespace System.Text
                    CodePage + (_emitUTF32ByteOrderMark ? 4 : 0) + (_bigEndian ? 8 : 0);
         }
 
-        [Serializable]
         private sealed class UTF32Decoder : DecoderNLS
         {
             // Need a place to store any extra bytes we may have picked up
index 5cfa890..e91b889 100644 (file)
@@ -34,7 +34,6 @@ namespace System.Text
     // used mostly to distinguish UTF-8 text from other encodings, and doesn't
     // switch the byte orderings.
 
-    [Serializable]
     public class UTF8Encoding : Encoding
     {
         /*
@@ -53,7 +52,6 @@ namespace System.Text
         private const int UTF8_CODEPAGE = 65001;
 
         // Allow for devirtualization (see https://github.com/dotnet/coreclr/pull/9230)
-        [Serializable]
         internal sealed class UTF8EncodingSealed : UTF8Encoding
         {
             public UTF8EncodingSealed(bool encoderShouldEmitUTF8Identifier) : base(encoderShouldEmitUTF8Identifier) { }
@@ -2521,7 +2519,6 @@ namespace System.Text
                    UTF8_CODEPAGE + (_emitUTF8Identifier ? 1 : 0);
         }
 
-        [Serializable]
         private sealed class UTF8Encoder : EncoderNLS, ISerializable
         {
             // We must save a high surrogate value until the next call, looking
@@ -2593,7 +2590,6 @@ namespace System.Text
             }
         }
 
-        [Serializable]
         private sealed class UTF8Decoder : DecoderNLS, ISerializable
         {
             // We'll need to remember the previous information. See the comments around definition
index 0e4db9a..1b60b5b 100644 (file)
@@ -14,7 +14,6 @@ using System.Diagnostics.Contracts;
 
 namespace System.Text
 {
-    [Serializable]
     public class UnicodeEncoding : Encoding
     {
         // Used by Encoding.BigEndianUnicode/Unicode for lazy initialization
@@ -1983,7 +1982,6 @@ namespace System.Text
                    (byteOrderMark ? 4 : 0) + (bigEndian ? 8 : 0);
         }
 
-        [Serializable]
         private sealed class Decoder : System.Text.DecoderNLS, ISerializable
         {
             internal int lastByte = -1;
index 3755e65..c12ac1c 100644 (file)
@@ -17,7 +17,6 @@ using System;
 
 namespace System
 {
-    [Serializable]
     [AttributeUsage(AttributeTargets.Field, Inherited = false)]
     public class ThreadStaticAttribute : Attribute
     {
index 8056a3b..7a0169f 100644 (file)
@@ -14,7 +14,6 @@ using System.Runtime.Serialization;
 
 namespace System.Threading
 {
-    [Serializable]
     public class AbandonedMutexException : SystemException
     {
         private int _mutexIndex = -1;
index 67857e9..b2cd71b 100644 (file)
@@ -44,7 +44,6 @@ namespace System.Threading
         }
     }
 
-    [Serializable]
     public sealed class ExecutionContext : IDisposable, ISerializable
     {
         internal static readonly ExecutionContext Default = new ExecutionContext();
index 2f296cb..a9f0c56 100644 (file)
@@ -7,7 +7,6 @@ using System.Runtime.Serialization;
 
 namespace System.Threading
 {
-    [Serializable]
     public class LockRecursionException : System.Exception
     {
         public LockRecursionException()
index 19ac19d..b583138 100644 (file)
@@ -7,7 +7,6 @@ using System.Runtime.Serialization;
 
 namespace System.Threading
 {
-    [Serializable]
     public class SemaphoreFullException : SystemException
     {
         public SemaphoreFullException() : base(SR.Threading_SemaphoreFullException)
index 120577f..e21d0c3 100644 (file)
@@ -16,7 +16,6 @@ using System.Runtime.Serialization;
 
 namespace System.Threading
 {
-    [Serializable]
     public class SynchronizationLockException : SystemException
     {
         public SynchronizationLockException()
index d7690d4..ee03204 100644 (file)
@@ -19,7 +19,6 @@ namespace System.Threading.Tasks
     /// <summary>
     /// Represents an exception used to communicate task cancellation.
     /// </summary>
-    [Serializable]
     public class TaskCanceledException : OperationCanceledException
     {
         [NonSerialized]
index 148b630..70e13f2 100644 (file)
@@ -20,7 +20,6 @@ namespace System.Threading.Tasks
     /// Represents an exception used to communicate an invalid operation by a
     /// <see cref="T:System.Threading.Tasks.TaskScheduler"/>.
     /// </summary>
-    [Serializable]
     public class TaskSchedulerException : Exception
     {
         /// <summary>
index e693e71..f4e2ea6 100644 (file)
@@ -18,7 +18,6 @@ using System.Runtime.Serialization;
 
 namespace System.Threading
 {
-    [Serializable]
     public sealed class ThreadAbortException : SystemException
     {
         private ThreadAbortException()
index 2ff77bc..9812de3 100644 (file)
@@ -6,7 +6,6 @@ using System.Runtime.Serialization;
 
 namespace System.Threading
 {
-    [Serializable]
     public sealed class ThreadStartException : SystemException
     {
         internal ThreadStartException()
index 33bc8ba..a186acd 100644 (file)
@@ -16,7 +16,6 @@ using System.Runtime.Serialization;
 
 namespace System.Threading
 {
-    [Serializable]
     public class ThreadStateException : SystemException
     {
         public ThreadStateException()
index e44946a..02dad47 100644 (file)
@@ -6,7 +6,6 @@ using System.Runtime.Serialization;
 
 namespace System.Threading
 {
-    [Serializable]
     public class WaitHandleCannotBeOpenedException : ApplicationException
     {
         public WaitHandleCannotBeOpenedException() : base(SR.Threading_WaitHandleCannotBeOpenedException)
index ee21c25..acb1b6f 100644 (file)
@@ -6,7 +6,6 @@ using System.Runtime.Serialization;
 
 namespace System
 {
-    [Serializable]
     public class TimeZoneNotFoundException : Exception
     {
         public TimeZoneNotFoundException()
index 32775a1..92780a8 100644 (file)
@@ -15,7 +15,6 @@ using System.Runtime.Serialization;
 
 namespace System
 {
-    [Serializable]
     public class TimeoutException : SystemException
     {
         public TimeoutException()
index 32afbdf..3561abe 100644 (file)
@@ -8,7 +8,6 @@ namespace System
 {
     // TypeAccessException derives from TypeLoadException rather than MemberAccessException because in
     // pre-v4 releases of the runtime TypeLoadException was used in lieu of a TypeAccessException.
-    [Serializable]
     public class TypeAccessException : TypeLoadException
     {
         public TypeAccessException()
index 9191028..53dd80e 100644 (file)
@@ -19,7 +19,6 @@ using System.Runtime.Serialization;
 
 namespace System
 {
-    [Serializable]
     public sealed class TypeInitializationException : SystemException
     {
         private String _typeName;
index 33e4687..296a820 100644 (file)
@@ -6,7 +6,6 @@ using System.Runtime.Serialization;
 
 namespace System
 {
-    [Serializable]
     public class TypeUnloadedException : SystemException
     {
         public TypeUnloadedException()
index 9973588..ceb0186 100644 (file)
@@ -19,7 +19,6 @@ namespace System
 {
     // The UnauthorizedAccessException is thrown when access errors 
     // occur from IO or other OS methods.  
-    [Serializable]
     public class UnauthorizedAccessException : SystemException
     {
         public UnauthorizedAccessException()
index d338301..5cde572 100644 (file)
@@ -4,7 +4,6 @@
 
 namespace System
 {
-    [Serializable]
     public class UnhandledExceptionEventArgs : EventArgs
     {
         private Object _exception;
index f195798..57eed72 100644 (file)
@@ -12,7 +12,6 @@ using System.Diagnostics.Contracts;
 
 namespace System
 {
-    [Serializable]
     // Holds classes (Empty, Null, Missing) for which we guarantee that there is only ever one instance of.
 #if CORECLR
     internal
index 5c20f63..5162e6a 100644 (file)
@@ -10,7 +10,6 @@
 namespace System
 {
     // This class represents the void return type
-    [Serializable]
     public struct Void
     {
     }
index 08178c8..764c199 100644 (file)
@@ -399,7 +399,6 @@ namespace Microsoft.Win32
             internal int bInheritHandle = 0;
         }
 
-        [Serializable]
         [StructLayout(LayoutKind.Sequential)]
         internal struct WIN32_FILE_ATTRIBUTE_DATA
         {
@@ -723,7 +722,6 @@ namespace Microsoft.Win32
         }
 
         // Win32 Structs in N/Direct style
-        [Serializable]
         [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
         [BestFitMapping(false)]
         internal class WIN32_FIND_DATA
index 12911c1..2ca2497 100644 (file)
@@ -16,7 +16,6 @@ using System.Runtime.Serialization;
 
 namespace System
 {
-    [Serializable]
     public class AccessViolationException : SystemException
     {
         public AccessViolationException()
index 06e91f8..7d20b57 100644 (file)
@@ -21,7 +21,6 @@ namespace System
     using System.Diagnostics.Contracts;
     using System.Collections.Generic;
 
-    [Serializable]
     internal sealed class AppDomainSetup
     {
         internal enum LoaderInformation
index 52cbb98..f2836bf 100644 (file)
@@ -16,7 +16,6 @@ using System.Runtime.Serialization;
 
 namespace System
 {
-    [Serializable]
     internal class AppDomainUnloadedException : SystemException
     {
         public AppDomainUnloadedException()
index 05c4804..fcfeb94 100644 (file)
@@ -2415,7 +2415,6 @@ namespace System
             }
         }
 
-        [Serializable]
         private sealed class SZArrayEnumerator : IEnumerator, ICloneable
         {
             private Array _array;
@@ -2461,7 +2460,6 @@ namespace System
             }
         }
 
-        [Serializable]
         private sealed class ArrayEnumerator : IEnumerator, ICloneable
         {
             private Array array;
@@ -2723,7 +2721,6 @@ namespace System
         // This is a normal generic Enumerator for SZ arrays. It doesn't have any of the "this" stuff
         // that SZArrayHelper does.
         //
-        [Serializable]
         private sealed class SZGenericArrayEnumerator<T> : IEnumerator<T>
         {
             private T[] _array;
index a18590d..6643527 100644 (file)
@@ -316,7 +316,6 @@ namespace System
             }
         }
 
-        [Serializable]
         public struct Enumerator : IEnumerator<T>
         {
             private readonly T[] _array;
index 7f4f9f0..754b44d 100644 (file)
@@ -20,7 +20,6 @@ using System.Diagnostics.Contracts;
 
 namespace System.Collections
 {
-    [Serializable]
     internal sealed class Comparer : IComparer, ISerializable
     {
         private CompareInfo m_compareInfo;
index 1c90707..7dcaa4e 100644 (file)
@@ -8,7 +8,6 @@ using System.Diagnostics.Contracts;
 
 namespace System.Collections
 {
-    [Serializable]
     internal class CompatibleComparer : IEqualityComparer
     {
         private IComparer _comparer;
index c6211da..3540cca 100644 (file)
@@ -20,7 +20,6 @@ namespace System.Collections.Concurrent
     /// </remarks>
     [DebuggerDisplay("Count = {Count}")]
     [DebuggerTypeProxy(typeof(SystemCollectionsConcurrent_ProducerConsumerCollectionDebugView<>))]
-    [Serializable]
     internal class ConcurrentQueue<T> : IProducerConsumerCollection<T>, IReadOnlyCollection<T>
     {
         // This implementation provides an unbounded, multi-producer multi-consumer queue
index 63e0d47..9841bdb 100644 (file)
@@ -18,7 +18,6 @@ using System.Diagnostics.Contracts;
 namespace System.Collections
 {
     ///    This is a simple implementation of IDictionary that is empty and readonly.
-    [Serializable]
     internal sealed class EmptyReadOnlyDictionaryInternal : IDictionary
     {
         // Note that this class must be agile with respect to AppDomains.  See its usage in
index e313cda..e4a4acf 100644 (file)
@@ -368,7 +368,6 @@ namespace System.Collections.Generic
         }
     }
 
-    [Serializable()]
     internal class GenericArraySortHelper<T>
         : IArraySortHelper<T>
         where T : IComparable<T>
index a9b4b3f..e163faa 100644 (file)
@@ -51,7 +51,6 @@ namespace System.Collections.Generic
     // reasons. Adding another base class (even one with no fields)
     // means another generic instantiation, which can be costly esp.
     // for value types.
-
     [Serializable]
     internal sealed class GenericComparer<T> : Comparer<T> where T : IComparable<T>
     {
@@ -112,7 +111,6 @@ namespace System.Collections.Generic
             GetType().GetHashCode();
     }
 
-    [Serializable]
     internal sealed class ComparisonComparer<T> : Comparer<T>
     {
         private readonly Comparison<T> _comparison;
@@ -133,7 +131,6 @@ namespace System.Collections.Generic
     // and have a SerializationInfo/StreamingContext ctor,
     // since we want to serialize as ObjectComparer for
     // back-compat reasons (see below).
-
     [Serializable]
     internal sealed class Int32EnumComparer<T> : Comparer<T>, ISerializable where T : struct
     {
index c08e287..cd33428 100644 (file)
@@ -908,7 +908,6 @@ namespace System.Collections.Generic
             }
         }
 
-        [Serializable]
         public struct Enumerator : IEnumerator<KeyValuePair<TKey, TValue>>,
             IDictionaryEnumerator
         {
@@ -1037,7 +1036,6 @@ namespace System.Collections.Generic
 
         [DebuggerTypeProxy(typeof(Mscorlib_DictionaryKeyCollectionDebugView<,>))]
         [DebuggerDisplay("Count = {Count}")]
-        [Serializable]
         public sealed class KeyCollection : ICollection<TKey>, ICollection, IReadOnlyCollection<TKey>
         {
             private Dictionary<TKey, TValue> dictionary;
@@ -1188,7 +1186,6 @@ namespace System.Collections.Generic
                 get { return ((ICollection)dictionary).SyncRoot; }
             }
 
-            [Serializable]
             public struct Enumerator : IEnumerator<TKey>, System.Collections.IEnumerator
             {
                 private Dictionary<TKey, TValue> dictionary;
@@ -1267,7 +1264,6 @@ namespace System.Collections.Generic
 
         [DebuggerTypeProxy(typeof(Mscorlib_DictionaryValueCollectionDebugView<,>))]
         [DebuggerDisplay("Count = {Count}")]
-        [Serializable]
         public sealed class ValueCollection : ICollection<TValue>, ICollection, IReadOnlyCollection<TValue>
         {
             private Dictionary<TKey, TValue> dictionary;
@@ -1416,7 +1412,6 @@ namespace System.Collections.Generic
                 get { return ((ICollection)dictionary).SyncRoot; }
             }
 
-            [Serializable]
             public struct Enumerator : IEnumerator<TValue>, System.Collections.IEnumerator
             {
                 private Dictionary<TKey, TValue> dictionary;
index 4e48088..94e794c 100644 (file)
@@ -1254,7 +1254,6 @@ namespace System.Collections.Generic
             }
         }
 
-        [Serializable]
         public struct Enumerator : IEnumerator<T>, System.Collections.IEnumerator
         {
             private List<T> list;
index e2fd57e..033afe1 100644 (file)
@@ -66,7 +66,6 @@ namespace System.Collections
     // 
     [DebuggerTypeProxy(typeof(System.Collections.Hashtable.HashtableDebugView))]
     [DebuggerDisplay("Count = {Count}")]
-    [Serializable]
     internal class Hashtable : IDictionary, ISerializable, IDeserializationCallback, ICloneable
     {
         /*
@@ -1073,7 +1072,6 @@ namespace System.Collections
 
         // Implements a Collection for the keys of a hashtable. An instance of this
         // class is created by the GetKeys method of a hashtable.
-        [Serializable]
         private class KeyCollection : ICollection
         {
             private Hashtable _hashtable;
@@ -1120,7 +1118,6 @@ namespace System.Collections
 
         // Implements a Collection for the values of a hashtable. An instance of
         // this class is created by the GetValues method of a hashtable.
-        [Serializable]
         private class ValueCollection : ICollection
         {
             private Hashtable _hashtable;
@@ -1166,7 +1163,6 @@ namespace System.Collections
         }
 
         // Synchronized wrapper for hashtable
-        [Serializable]
         private class SyncHashtable : Hashtable, IEnumerable
         {
             protected Hashtable _table;
@@ -1347,7 +1343,6 @@ namespace System.Collections
         // Implements an enumerator for a hashtable. The enumerator uses the
         // internal version number of the hashtabke to ensure that no modifications
         // are made to the hashtable while an enumeration is in progress.
-        [Serializable]
         private class HashtableEnumerator : IDictionaryEnumerator, ICloneable
         {
             private Hashtable hashtable;
index ebf86cd..3fd0cf8 100644 (file)
@@ -19,7 +19,6 @@ using System.Diagnostics.Contracts;
 
 namespace System.Collections.ObjectModel
 {
-    [Serializable]
     [DebuggerTypeProxy(typeof(Mscorlib_DictionaryDebugView<,>))]
     [DebuggerDisplay("Count = {Count}")]
     internal class ReadOnlyDictionary<TKey, TValue> : IDictionary<TKey, TValue>, IDictionary, IReadOnlyDictionary<TKey, TValue>
@@ -365,7 +364,6 @@ namespace System.Collections.ObjectModel
             }
         }
 
-        [Serializable]
         private struct DictionaryEnumerator : IDictionaryEnumerator
         {
             private readonly IDictionary<TKey, TValue> m_dictionary;
@@ -432,7 +430,6 @@ namespace System.Collections.ObjectModel
 
         [DebuggerTypeProxy(typeof(Mscorlib_CollectionDebugView<>))]
         [DebuggerDisplay("Count = {Count}")]
-        [Serializable]
         public sealed class KeyCollection : ICollection<TKey>, ICollection, IReadOnlyCollection<TKey>
         {
             private readonly ICollection<TKey> m_collection;
@@ -543,7 +540,6 @@ namespace System.Collections.ObjectModel
 
         [DebuggerTypeProxy(typeof(Mscorlib_CollectionDebugView<>))]
         [DebuggerDisplay("Count = {Count}")]
-        [Serializable]
         public sealed class ValueCollection : ICollection<TValue>, ICollection, IReadOnlyCollection<TValue>
         {
             private readonly ICollection<TValue> m_collection;
index 13ec1b0..4b735bb 100644 (file)
@@ -10,7 +10,6 @@ using System.Runtime.Versioning;
 
 namespace System
 {
-    [Serializable]
     internal struct Currency
     {
         internal long m_value;
index 75ec57a..8c4516a 100644 (file)
@@ -15,7 +15,6 @@ namespace System
     using System.Diagnostics;
     using System.Diagnostics.Contracts;
 
-    [Serializable]
     [ClassInterface(ClassInterfaceType.AutoDual)]
     [System.Runtime.InteropServices.ComVisible(true)]
     public abstract class Delegate : ICloneable, ISerializable
diff --git a/src/mscorlib/src/System/DelegateSerializationHolder.cs b/src/mscorlib/src/System/DelegateSerializationHolder.cs
deleted file mode 100644 (file)
index 17e2dd9..0000000
+++ /dev/null
@@ -1,286 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for more information.
-
-
-using System;
-using System.Reflection;
-using System.Runtime.Serialization;
-using System.Globalization;
-using System.Diagnostics.Contracts;
-
-namespace System
-{
-    [Serializable]
-    internal sealed class DelegateSerializationHolder : IObjectReference, ISerializable
-    {
-        #region Static Members
-        internal static DelegateEntry GetDelegateSerializationInfo(
-            SerializationInfo info, Type delegateType, Object target, MethodInfo method, int targetIndex)
-        {
-            // Used for MulticastDelegate
-
-            if (method == null)
-                throw new ArgumentNullException(nameof(method));
-            Contract.EndContractBlock();
-
-            Type c = delegateType.BaseType;
-
-            if (c == null || (c != typeof(Delegate) && c != typeof(MulticastDelegate)))
-                throw new ArgumentException(SR.Arg_MustBeDelegate, "type");
-
-            if (method.DeclaringType == null)
-                throw new NotSupportedException(SR.NotSupported_GlobalMethodSerialization);
-
-            DelegateEntry de = new DelegateEntry(delegateType.FullName, delegateType.Module.Assembly.FullName, target,
-                method.ReflectedType.Module.Assembly.FullName, method.ReflectedType.FullName, method.Name);
-
-            if (info.MemberCount == 0)
-            {
-                info.SetType(typeof(DelegateSerializationHolder));
-                info.AddValue("Delegate", de, typeof(DelegateEntry));
-            }
-
-            // target can be an object so it needs to be added to the info, or else a fixup is needed
-            // when deserializing, and the fixup will occur too late. If it is added directly to the
-            // info then the rules of deserialization will guarantee that it will be available when
-            // needed
-
-            if (target != null)
-            {
-                String targetName = "target" + targetIndex;
-                info.AddValue(targetName, de.target);
-                de.target = targetName;
-            }
-
-            // Due to a number of additions (delegate signature binding relaxation, delegates with open this or closed over the
-            // first parameter and delegates over generic methods) we need to send a deal more information than previously. We can
-            // get this by serializing the target MethodInfo. We still need to send the same information as before though (the
-            // DelegateEntry above) for backwards compatibility. And we want to send the MethodInfo (which is serialized via an
-            // ISerializable holder) as a top-level child of the info for the same reason as the target above -- we wouldn't have an
-            // order of deserialization guarantee otherwise.
-            String methodInfoName = "method" + targetIndex;
-            info.AddValue(methodInfoName, method);
-
-            return de;
-        }
-        #endregion
-
-        #region Definitions
-        [Serializable]
-        internal class DelegateEntry
-        {
-            #region Internal Data Members
-            internal String type;
-            internal String assembly;
-            internal Object target;
-            internal String targetTypeAssembly;
-            internal String targetTypeName;
-            internal String methodName;
-            internal DelegateEntry delegateEntry;
-            #endregion
-
-            #region Constructor
-            internal DelegateEntry(
-                String type, String assembly, Object target, String targetTypeAssembly, String targetTypeName, String methodName)
-            {
-                this.type = type;
-                this.assembly = assembly;
-                this.target = target;
-                this.targetTypeAssembly = targetTypeAssembly;
-                this.targetTypeName = targetTypeName;
-                this.methodName = methodName;
-            }
-            #endregion
-
-            #region Internal Members
-            internal DelegateEntry Entry
-            {
-                get { return delegateEntry; }
-                set { delegateEntry = value; }
-            }
-            #endregion
-        }
-
-        #endregion
-
-        #region Private Data Members
-        private DelegateEntry m_delegateEntry;
-        private MethodInfo[] m_methods;
-        #endregion
-
-        #region Constructor
-        private DelegateSerializationHolder(SerializationInfo info, StreamingContext context)
-        {
-            if (info == null)
-                throw new ArgumentNullException(nameof(info));
-            Contract.EndContractBlock();
-
-            bool bNewWire = true;
-
-            try
-            {
-                m_delegateEntry = (DelegateEntry)info.GetValue("Delegate", typeof(DelegateEntry));
-            }
-            catch
-            {
-                // Old wire format
-                m_delegateEntry = OldDelegateWireFormat(info, context);
-                bNewWire = false;
-            }
-
-            if (bNewWire)
-            {
-                // retrieve the targets
-                DelegateEntry deiter = m_delegateEntry;
-                int count = 0;
-                while (deiter != null)
-                {
-                    if (deiter.target != null)
-                    {
-                        string stringTarget = deiter.target as string; //need test to pass older wire format
-                        if (stringTarget != null)
-                            deiter.target = info.GetValue(stringTarget, typeof(Object));
-                    }
-                    count++;
-                    deiter = deiter.delegateEntry;
-                }
-
-                // If the sender is as recent as us they'll have provided MethodInfos for each delegate. Look for these and pack
-                // them into an ordered array if present.
-                MethodInfo[] methods = new MethodInfo[count];
-                int i;
-                for (i = 0; i < count; i++)
-                {
-                    String methodInfoName = "method" + i;
-                    methods[i] = (MethodInfo)info.GetValueNoThrow(methodInfoName, typeof(MethodInfo));
-                    if (methods[i] == null)
-                        break;
-                }
-
-                // If we got the info then make the array available for deserialization.
-                if (i == count)
-                    m_methods = methods;
-            }
-        }
-        #endregion
-
-        #region Private Members
-        private void ThrowInsufficientState(string field)
-        {
-            throw new SerializationException(
-                SR.Format(SR.Serialization_InsufficientDeserializationState, field));
-        }
-
-        private DelegateEntry OldDelegateWireFormat(SerializationInfo info, StreamingContext context)
-        {
-            if (info == null)
-                throw new ArgumentNullException(nameof(info));
-            Contract.EndContractBlock();
-
-            String delegateType = info.GetString("DelegateType");
-            String delegateAssembly = info.GetString("DelegateAssembly");
-            Object target = info.GetValue("Target", typeof(Object));
-            String targetTypeAssembly = info.GetString("TargetTypeAssembly");
-            String targetTypeName = info.GetString("TargetTypeName");
-            String methodName = info.GetString("MethodName");
-
-            return new DelegateEntry(delegateType, delegateAssembly, target, targetTypeAssembly, targetTypeName, methodName);
-        }
-
-        private Delegate GetDelegate(DelegateEntry de, int index)
-        {
-            Delegate d;
-
-            try
-            {
-                if (de.methodName == null || de.methodName.Length == 0)
-                    ThrowInsufficientState("MethodName");
-
-                if (de.assembly == null || de.assembly.Length == 0)
-                    ThrowInsufficientState("DelegateAssembly");
-
-                if (de.targetTypeName == null || de.targetTypeName.Length == 0)
-                    ThrowInsufficientState("TargetTypeName");
-
-                // We cannot use Type.GetType directly, because of AppCompat - assembly names starting with '[' would fail to load.
-                RuntimeType type = (RuntimeType)Assembly.GetType_Compat(de.assembly, de.type);
-
-                // {de.targetTypeAssembly, de.targetTypeName} do not actually refer to the type of the target, but the reflected
-                // type of the method. Those types may be the same when the method is on the target's type or on a type in its
-                // inheritance chain, but those types may not be the same when the method is an extension method for the
-                // target's type or a type in its inheritance chain.
-
-                // If we received the new style delegate encoding we already have the target MethodInfo in hand.
-                if (m_methods != null)
-                {
-                    // The method info is serialized, so the target type info is redundant. The desktop framework does no
-                    // additional verification on the target type info.
-                    d = Delegate.CreateDelegateNoSecurityCheck(type, de.target, m_methods[index]);
-                }
-                else
-                {
-                    if (de.target != null)
-                    {
-                        // For consistency with the desktop framework, when the method info is not serialized for a closed
-                        // delegate, the method is assumed to be on the target's type or in its inheritance chain. An extension
-                        // method would not work on this path for the above reason and also because the delegate binds to
-                        // instance methods only. The desktop framework does no additional verification on the target type info.
-                        d = Delegate.CreateDelegate(type, de.target, de.methodName);
-                    }
-                    else
-                    {
-                        RuntimeType targetType = (RuntimeType)Assembly.GetType_Compat(de.targetTypeAssembly, de.targetTypeName);
-                        d = Delegate.CreateDelegate(type, targetType, de.methodName);
-                    }
-                }
-            }
-            catch (Exception e)
-            {
-                if (e is SerializationException)
-                    throw e;
-
-                throw new SerializationException(e.Message, e);
-            }
-
-            return d;
-        }
-        #endregion
-
-        #region IObjectReference
-        public Object GetRealObject(StreamingContext context)
-        {
-            int count = 0;
-            for (DelegateEntry de = m_delegateEntry; de != null; de = de.Entry)
-                count++;
-
-            int maxindex = count - 1;
-
-            if (count == 1)
-            {
-                return GetDelegate(m_delegateEntry, 0);
-            }
-            else
-            {
-                object[] invocationList = new object[count];
-
-                for (DelegateEntry de = m_delegateEntry; de != null; de = de.Entry)
-                {
-                    // Be careful to match the index we pass to GetDelegate (used to look up extra information for each delegate) to
-                    // the order we process the entries: we're actually looking at them in reverse order.
-                    --count;
-                    invocationList[count] = GetDelegate(de, maxindex - count);
-                }
-                return ((MulticastDelegate)invocationList[0]).NewMulticastDelegate(invocationList, invocationList.Length);
-            }
-        }
-        #endregion
-
-        #region ISerializable
-        public void GetObjectData(SerializationInfo info, StreamingContext context)
-        {
-            throw new NotSupportedException(SR.NotSupported_DelegateSerHolderSerial);
-        }
-        #endregion
-    }
-}
index 7c861de..39ce93f 100644 (file)
@@ -15,7 +15,6 @@ namespace System.Diagnostics
     // 
     // The default filter brings up a simple Win32 dialog with 3 buttons.
 
-    [Serializable]
     abstract internal class AssertFilter
     {
         // Called when an assert fails.  This should be overridden with logic which
index 09d1e6b..c5b5ab4 100644 (file)
@@ -186,7 +186,6 @@ namespace System.Diagnostics.Contracts
         }
     }
 
-    [Serializable]
     [SuppressMessage("Microsoft.Design", "CA1064:ExceptionsShouldBePublic")]
     internal sealed class ContractException : Exception
     {
index 5e1dfd8..34e65bc 100644 (file)
@@ -18,21 +18,18 @@ using System.Diagnostics.Contracts;
 
 namespace System.Diagnostics
 {
-    [Serializable]
     [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Constructor, Inherited = false)]
     public sealed class DebuggerStepThroughAttribute : Attribute
     {
         public DebuggerStepThroughAttribute() { }
     }
 
-    [Serializable]
     [AttributeUsage(AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Constructor, Inherited = false)]
     public sealed class DebuggerHiddenAttribute : Attribute
     {
         public DebuggerHiddenAttribute() { }
     }
 
-    [Serializable]
     [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Constructor | AttributeTargets.Struct, Inherited = false)]
     public sealed class DebuggerNonUserCodeAttribute : Attribute
     {
index 8ad4fec..6b8c150 100644 (file)
@@ -16,7 +16,6 @@ using System;
 
 namespace System.Diagnostics
 {
-    [Serializable]
     internal sealed class EditAndContinueHelper
     {
 #pragma warning disable 169
index 29d6a1d..d3994d4 100644 (file)
@@ -11,7 +11,6 @@ using System.Diagnostics.CodeAnalysis;
 
 namespace System.Diagnostics
 {
-    [Serializable]
     internal class LogSwitch
     {
         // ! WARNING ! 
index b555a60..a6a7067 100644 (file)
@@ -12,7 +12,6 @@ using System.Diagnostics.Contracts;
 namespace System.Diagnostics
 {
     // There is no good reason for the methods of this class to be virtual.
-    [Serializable]
     public class StackFrame
     {
         private MethodBase method;
index cdedb66..6a138de 100644 (file)
@@ -22,7 +22,6 @@ namespace System.Diagnostics
     // Modifying the order or fields of this object may require other changes 
     // to the unmanaged definition of the StackFrameHelper class, in 
     // VM\DebugDebugger.h. The binder will catch some of these layout problems.
-    [Serializable]
     internal class StackFrameHelper : IDisposable
     {
         [NonSerialized]
@@ -251,7 +250,6 @@ namespace System.Diagnostics
     // In order to ensure trusted code can trust the data it gets from a 
     // StackTrace, we use an InheritanceDemand to prevent partially-trusted
     // subclasses.
-    [Serializable]
     public class StackTrace
     {
         private StackFrame[] frames;
index 7c4503e..10fc697 100644 (file)
@@ -13,7 +13,6 @@ using System.Runtime.Serialization;
 
 namespace System
 {
-    [Serializable]
     internal sealed class Empty : ISerializable
     {
         private Empty()
index c23e108..86782c1 100644 (file)
@@ -28,7 +28,6 @@ namespace System.Globalization
     // The calculation of hour/minute/second is moved to Calendar from GregorianCalendar,
     // since most of the calendars (or all?) have the same way of calcuating hour/minute/second.
 
-    [Serializable]
     public abstract partial class Calendar : ICloneable
     {
         // Number of 100ns (10E-7 second) ticks per time unit
index 60938de..16e2d29 100644 (file)
@@ -44,7 +44,6 @@ namespace System.Globalization
     using StringLcidDictionary = LowLevelDictionary<int, CultureInfo>;
 #endif
 
-    [Serializable]
     public partial class CultureInfo : IFormatProvider, ICloneable
     {
         //--------------------------------------------------------------------//
index ffb2d46..ccf9993 100644 (file)
@@ -4,7 +4,6 @@
 
 namespace System.Globalization
 {
-    [Serializable]
     internal class CodePageDataItem
     {
         private readonly int _codePage;
index dedcab5..0008101 100644 (file)
@@ -17,7 +17,6 @@ namespace System.Globalization
     // immediately because they don't require creating an object.  Creating any of the string
     // names is delayed until somebody actually asks for them and the names are then cached.
 
-    [Serializable]
     internal class CodePageDataItem
     {
         internal int m_dataIndex;
index 6dbf5b2..9115b12 100644 (file)
@@ -13,9 +13,6 @@ namespace System.Globalization
     // This calendar recognizes two era values:
     // 0 CurrentEra (AD)
     // 1 BeforeCurrentEra (BC)
-
-    [Serializable]
-
     public class GregorianCalendar : Calendar
     {
         /*
index bdc35f0..1367e0d 100644 (file)
@@ -10,7 +10,6 @@ using System.Threading;
 namespace System.Globalization
 {
     // Gregorian Calendars use Era Info
-    [Serializable]
     internal class EraInfo
     {
         internal int era;          // The value of the era.
@@ -55,7 +54,6 @@ namespace System.Globalization
     // This calendar recognizes two era values:
     // 0 CurrentEra (AD) 
     // 1 BeforeCurrentEra (BC) 
-    [Serializable]
     internal class GregorianCalendarHelper
     {
         // 1 tick = 100ns = 10E-7 second
index c3d5e65..ab52002 100644 (file)
@@ -20,7 +20,6 @@ using System.Runtime.Serialization;
 
 namespace System.Globalization
 {
-    [Serializable]
     public class RegionInfo
     {
         //--------------------------------------------------------------------//
index 464897b..a875b70 100644 (file)
@@ -20,7 +20,6 @@ namespace System.Globalization
     // This is public because GetTextElement() is public.
     //
 
-    [Serializable]
     public class TextElementEnumerator : IEnumerator
     {
         private String _str;
index fecd2b2..3b567b9 100644 (file)
@@ -19,7 +19,6 @@ using System.Text;
 
 namespace System.Globalization
 {
-    [Serializable]
     public partial class TextInfo : ICloneable, IDeserializationCallback
     {
         ////--------------------------------------------------------------------//
index 3d9839f..644226f 100644 (file)
@@ -27,7 +27,6 @@ namespace System.IO
     // primitives to an arbitrary stream. A subclass can override methods to
     // give unique encodings.
     //
-    [Serializable]
     public class BinaryWriter : IDisposable
     {
         public static readonly BinaryWriter Null = new BinaryWriter();
index 27b6f90..2e37a13 100644 (file)
@@ -17,7 +17,6 @@ using System.Runtime.Serialization;
 namespace System.IO
 {
     //Thrown when trying to access a drive that is not availabe.
-    [Serializable]
     internal class DriveNotFoundException : IOException
     {
         public DriveNotFoundException()
index 2628f7b..1a49ec7 100644 (file)
@@ -18,7 +18,6 @@ using System.Runtime.Serialization;
 
 namespace System.IO
 {
-    [Serializable]
     public class IOException : SystemException
     {
         // For debugging purposes, store the complete path in the IOException
index 3d5668d..daf09d1 100644 (file)
@@ -34,7 +34,6 @@ namespace System.IO
     // from an unsigned byte array, or you can create an empty one.  Empty 
     // memory streams are resizable, while ones created with a byte array provide
     // a stream "view" of the data.
-    [Serializable]
     public class MemoryStream : Stream
     {
         private byte[] _buffer;    // Either allocated internally or externally.
index 65cc4dd..786dfed 100644 (file)
@@ -30,7 +30,6 @@ using System.Reflection;
 
 namespace System.IO
 {
-    [Serializable]
     public abstract class Stream : MarshalByRefObject, IDisposable
     {
         public static readonly Stream Null = new NullStream();
@@ -854,7 +853,6 @@ namespace System.IO
             SynchronousAsyncResult.EndWrite(asyncResult);
         }
 
-        [Serializable]
         private sealed class NullStream : Stream
         {
             internal NullStream() { }
@@ -1093,7 +1091,6 @@ namespace System.IO
 
         // SyncStream is a wrapper around a stream that takes 
         // a lock for every operation making it thread safe.
-        [Serializable]
         internal sealed class SyncStream : Stream, IDisposable
         {
             private Stream _stream;
index dfb928c..1fc72bf 100644 (file)
@@ -16,7 +16,6 @@ namespace System.IO
     // This is designed for character input in a particular Encoding, 
     // whereas the Stream class is designed for byte input and output.  
     // 
-    [Serializable]
     internal class StreamReader : TextReader
     {
         // StreamReader.Null is threadsafe.
index 3da6859..2531778 100644 (file)
@@ -30,7 +30,6 @@ namespace System.IO {
     //
     // This class is intended for character input, not bytes.  
     // There are methods on the Stream class for reading bytes. 
-    [Serializable]
     internal abstract class TextReader : MarshalByRefObject, IDisposable {
 
         public static readonly TextReader Null = new NullTextReader();
@@ -263,7 +262,6 @@ namespace System.IO {
             return new SyncTextReader(reader);
         }
         
-        [Serializable]
         private sealed class NullTextReader : TextReader
         {
             public NullTextReader(){}
@@ -280,7 +278,6 @@ namespace System.IO {
             }
         }
         
-        [Serializable]
         internal sealed class SyncTextReader : TextReader 
         {
             internal TextReader _in;
index eb5e4d7..6990b57 100644 (file)
@@ -22,7 +22,6 @@ using System.Runtime.Serialization;
 
 namespace System
 {
-    [Serializable]
     public sealed class InsufficientMemoryException : OutOfMemoryException
     {
         public InsufficientMemoryException()
index 39f66a2..0a91dd2 100644 (file)
@@ -17,7 +17,6 @@ using System.Globalization;
 
 namespace System
 {
-    [Serializable]
     public class MissingFieldException : MissingMemberException, ISerializable
     {
         public MissingFieldException()
index 0b8342f..92454c3 100644 (file)
@@ -21,7 +21,6 @@ using System.Diagnostics.Contracts;
 
 namespace System
 {
-    [Serializable]
     public class MissingMemberException : MemberAccessException, ISerializable
     {
         public MissingMemberException()
index 440c9a6..988bf2b 100644 (file)
@@ -13,7 +13,6 @@ using System.Reflection.Emit;
 
 namespace System
 {
-    [Serializable]
     [System.Runtime.InteropServices.ComVisible(true)]
     public abstract class MulticastDelegate : Delegate
     {
@@ -50,49 +49,7 @@ namespace System
 
         public override void GetObjectData(SerializationInfo info, StreamingContext context)
         {
-            int targetIndex = 0;
-            Object[] invocationList = _invocationList as Object[];
-            if (invocationList == null)
-            {
-                MethodInfo method = Method;
-                // A MethodInfo object can be a RuntimeMethodInfo, a RefEmit method (MethodBuilder, etc), or a DynamicMethod
-                // One can only create delegates on RuntimeMethodInfo and DynamicMethod.
-                // If it is not a RuntimeMethodInfo (must be a DynamicMethod) or if it is an unmanaged function pointer, throw
-                if (!(method is RuntimeMethodInfo) || IsUnmanagedFunctionPtr())
-                    throw new SerializationException(SR.Serialization_InvalidDelegateType);
-
-                // We can't deal with secure delegates either.
-                if (!InvocationListLogicallyNull() && !_invocationCount.IsNull() && !_methodPtrAux.IsNull())
-                    throw new SerializationException(SR.Serialization_InvalidDelegateType);
-
-                DelegateSerializationHolder.GetDelegateSerializationInfo(info, this.GetType(), Target, method, targetIndex);
-            }
-            else
-            {
-                DelegateSerializationHolder.DelegateEntry nextDe = null;
-                int invocationCount = (int)_invocationCount;
-                for (int i = invocationCount; --i >= 0;)
-                {
-                    MulticastDelegate d = (MulticastDelegate)invocationList[i];
-                    MethodInfo method = d.Method;
-                    // If it is not a RuntimeMethodInfo (must be a DynamicMethod) or if it is an unmanaged function pointer, skip
-                    if (!(method is RuntimeMethodInfo) || IsUnmanagedFunctionPtr())
-                        continue;
-
-                    // We can't deal with secure delegates either.
-                    if (!d.InvocationListLogicallyNull() && !d._invocationCount.IsNull() && !d._methodPtrAux.IsNull())
-                        continue;
-
-                    DelegateSerializationHolder.DelegateEntry de = DelegateSerializationHolder.GetDelegateSerializationInfo(info, d.GetType(), d.Target, method, targetIndex++);
-                    if (nextDe != null)
-                        nextDe.Entry = de;
-
-                    nextDe = de;
-                }
-                // if nothing was serialized it is a delegate over a DynamicMethod, so just throw
-                if (nextDe == null)
-                    throw new SerializationException(SR.Serialization_InvalidDelegateType);
-            }
+            throw new SerializationException(SR.Serialization_DelegatesNotSupported);
         }
 
         // equals returns true IIF the delegate is not null and has the
index 3c30442..a476557 100644 (file)
@@ -201,7 +201,6 @@ namespace System
     // The name "__Canon" will never been seen by users but it will appear a lot in debugger stack traces
     // involving generics so it is kept deliberately short as to avoid being a nuisance.
 
-    [Serializable]
     [ClassInterface(ClassInterfaceType.AutoDual)]
     [System.Runtime.InteropServices.ComVisible(true)]
     internal class __Canon
index 1db61bb..3a9f03c 100644 (file)
@@ -15,7 +15,6 @@ namespace System
     using CultureInfo = System.Globalization.CultureInfo;
 
     // Made serializable in anticipation of this class eventually having state.
-    [Serializable]
     internal class OleAutBinder : DefaultBinder
     {
         // ChangeType
index 154d0f9..7ffb029 100644 (file)
@@ -17,7 +17,6 @@ using System.Runtime.Serialization;
 
 namespace System
 {
-    [Serializable]
     public class OutOfMemoryException : SystemException
     {
         public OutOfMemoryException()
index 4bc7882..ba6208f 100644 (file)
@@ -27,7 +27,6 @@ namespace System.Reflection
     using System.Diagnostics.Contracts;
     using System.Text;
 
-    [Serializable]
     public sealed class AssemblyName : ICloneable, ISerializable, IDeserializationCallback
     {
         //
index 7f4bcbf..4bc5933 100644 (file)
@@ -20,7 +20,6 @@ using System.Diagnostics.Contracts;
 
 namespace System.Reflection
 {
-    [Serializable]
     public class CustomAttributeData
     {
         #region Public Static Members
@@ -570,7 +569,6 @@ namespace System.Reflection
         #endregion
     }
 
-    [Serializable]
     public struct CustomAttributeNamedArgument
     {
         #region Public Static Members
@@ -659,7 +657,6 @@ namespace System.Reflection
 
     }
 
-    [Serializable]
     public struct CustomAttributeTypedArgument
     {
         #region Public Static Members
@@ -958,7 +955,6 @@ namespace System.Reflection
         #endregion
     }
 
-    [Serializable]
     internal struct CustomAttributeRecord
     {
         internal ConstArray blob;
@@ -989,7 +985,6 @@ namespace System.Reflection
         Enum = 0x55
     }
 
-    [Serializable]
     [StructLayout(LayoutKind.Auto)]
     internal struct CustomAttributeEncodedArgument
     {
@@ -1044,7 +1039,6 @@ namespace System.Reflection
         #endregion
     }
 
-    [Serializable]
     [StructLayout(LayoutKind.Auto)]
     internal struct CustomAttributeNamedParameter
     {
@@ -1076,7 +1070,6 @@ namespace System.Reflection
         #endregion
     }
 
-    [Serializable]
     [StructLayout(LayoutKind.Auto)]
     internal struct CustomAttributeCtorParameter
     {
@@ -1098,7 +1091,6 @@ namespace System.Reflection
         #endregion
     }
 
-    [Serializable]
     [StructLayout(LayoutKind.Auto)]
     internal struct CustomAttributeType
     {
index 18ec630..e44dc3d 100644 (file)
@@ -18,7 +18,6 @@ using System.Reflection;
 
 namespace System.Reflection.Emit
 {
-    [Serializable]
     public struct EventToken
     {
         public static readonly EventToken Empty = new EventToken();
index 6c5d778..c7450ca 100644 (file)
@@ -22,7 +22,6 @@ namespace System.Reflection.Emit
     // by the Metadata to represent the field.  FieldTokens are generated by 
     // Module.GetFieldToken().  There are no meaningful accessors on this class,
     // but it can be passed to ILGenerator which understands it's internals.
-    [Serializable]
     public struct FieldToken
     {
         public static readonly FieldToken Empty = new FieldToken();
index f6315a6..d67c0e6 100644 (file)
@@ -26,7 +26,6 @@ namespace System.Reflection.Emit
     // is passed to the MethodWriter.
     // Labels are created by using ILGenerator.CreateLabel and their position is set
     // by using ILGenerator.MarkLabel.
-    [Serializable]
     public struct Label
     {
         internal int m_label;
index 0905ac9..9698b07 100644 (file)
@@ -18,7 +18,6 @@ using System.Reflection;
 
 namespace System.Reflection.Emit
 {
-    [Serializable]
     public struct MethodToken
     {
         public static readonly MethodToken Empty = new MethodToken();
index 4f1b8eb..4a9b774 100644 (file)
@@ -19,7 +19,6 @@ namespace System.Reflection.Emit
     // This is a package private class. This class hold all of the managed
     // data member for ModuleBuilder. Note that what ever data members added to
     // this class cannot be accessed from the EE.
-    [Serializable]
     internal class ModuleBuilderData
     {
         internal ModuleBuilderData(ModuleBuilder module, String strModuleName, String strFileName, int tkFile)
index 42f85af..067bc2d 100644 (file)
@@ -20,7 +20,6 @@ namespace System.Reflection.Emit
 {
     // The ParameterToken class is an opaque representation of the Token returned
     // by the Metadata to represent the parameter. 
-    [Serializable]
     public struct ParameterToken
     {
         public static readonly ParameterToken Empty = new ParameterToken();
index b450b19..02f3488 100644 (file)
@@ -18,7 +18,6 @@ using System.Reflection;
 
 namespace System.Reflection.Emit
 {
-    [Serializable]
     public struct PropertyToken
     {
         public static readonly PropertyToken Empty = new PropertyToken();
index 1d90816..cc5b734 100644 (file)
@@ -18,7 +18,6 @@ using System.Reflection;
 
 namespace System.Reflection.Emit
 {
-    [Serializable]
     public struct StringToken
     {
         internal int m_string;
index 4f0c1b3..15a0816 100644 (file)
@@ -19,7 +19,6 @@ using System.Threading;
 
 namespace System.Reflection.Emit
 {
-    [Serializable]
     public struct TypeToken
     {
         public static readonly TypeToken Empty = new TypeToken();
index 41ee4d9..9645b7f 100644 (file)
@@ -9,7 +9,6 @@ using RuntimeTypeCache = System.RuntimeType.RuntimeTypeCache;
 
 namespace System.Reflection
 {
-    [Serializable]
     internal sealed unsafe class MdFieldInfo : RuntimeFieldInfo, ISerializable
     {
         #region Private Data Members
index 5744187..9230ffa 100644 (file)
@@ -161,7 +161,6 @@ namespace System.Reflection
         Invalid = 0x7FFFFFFF,
     }
 
-    [Serializable]
     internal struct ConstArray
     {
         public IntPtr Signature { get { return m_constArray; } }
@@ -186,7 +185,6 @@ namespace System.Reflection
         internal IntPtr m_constArray;
     }
 
-    [Serializable]
     internal struct MetadataToken
     {
         #region Implicit Cast Operators
index 20d6e63..ddfc56b 100644 (file)
@@ -11,7 +11,6 @@ using RuntimeTypeCache = System.RuntimeType.RuntimeTypeCache;
 
 namespace System.Reflection
 {
-    [Serializable]
     internal unsafe sealed class RtFieldInfo : RuntimeFieldInfo, IRuntimeFieldInfo
     {
         #region FCalls
index b3e7a4d..2072ec4 100644 (file)
@@ -17,7 +17,6 @@ using System.Diagnostics.Contracts;
 
 namespace System.Reflection
 {
-    [Serializable]
     internal class RuntimeAssembly : Assembly
     {
 #if FEATURE_APPX
index 9693081..5a43ee4 100644 (file)
@@ -11,7 +11,6 @@ using RuntimeTypeCache = System.RuntimeType.RuntimeTypeCache;
 
 namespace System.Reflection
 {
-    [Serializable]
     internal sealed class RuntimeConstructorInfo : ConstructorInfo, ISerializable, IRuntimeMethodInfo
     {
         #region Private Data Members
index 88f1aff..eb79ea7 100644 (file)
@@ -10,7 +10,6 @@ using RuntimeTypeCache = System.RuntimeType.RuntimeTypeCache;
 
 namespace System.Reflection
 {
-    [Serializable]
     internal unsafe sealed class RuntimeEventInfo : EventInfo, ISerializable
     {
         #region Private Data Members
index b3dceaa..950eac7 100644 (file)
@@ -9,7 +9,6 @@ using RuntimeTypeCache = System.RuntimeType.RuntimeTypeCache;
 
 namespace System.Reflection
 {
-    [Serializable]
     internal abstract class RuntimeFieldInfo : FieldInfo, ISerializable
     {
         #region Private Data Members
index 9a7da4d..40da97c 100644 (file)
@@ -14,7 +14,6 @@ using RuntimeTypeCache = System.RuntimeType.RuntimeTypeCache;
 
 namespace System.Reflection
 {
-    [Serializable]
     internal sealed class RuntimeMethodInfo : MethodInfo, ISerializable, IRuntimeMethodInfo
     {
         #region Private Data Members
index 75809cb..b5020a7 100644 (file)
@@ -12,7 +12,6 @@ using System.Diagnostics.Contracts;
 
 namespace System.Reflection
 {
-    [Serializable]
     internal class RuntimeModule : Module
     {
         internal RuntimeModule() { throw new NotSupportedException(); }
index addf68e..846ec1d 100644 (file)
@@ -11,7 +11,6 @@ using MdToken = System.Reflection.MetadataToken;
 
 namespace System.Reflection
 {
-    [Serializable]
     internal unsafe sealed class RuntimeParameterInfo : ParameterInfo, ISerializable
     {
         #region Static Members
index d684e6c..fc388ed 100644 (file)
@@ -12,7 +12,6 @@ using RuntimeTypeCache = System.RuntimeType.RuntimeTypeCache;
 
 namespace System.Reflection
 {
-    [Serializable]
     internal unsafe sealed class RuntimePropertyInfo : PropertyInfo, ISerializable
     {
         #region Private Data Members
index 993efdd..e398148 100644 (file)
@@ -149,7 +149,6 @@ namespace System.Resources
     // is one such example.
     //
 
-    [Serializable]
     public class ResourceManager
     {
         internal class CultureNameResourceSetPair
index 9efff0d..b4029a7 100644 (file)
@@ -32,7 +32,6 @@ namespace System.Resources
     // enumerates over an IResourceReader, loading every name and value, and 
     // stores them in a hash table.  Custom IResourceReaders can be used.
     //
-    [Serializable]
     public class ResourceSet : IDisposable, IEnumerable
     {
         [NonSerialized] protected IResourceReader Reader;
index 4bf78b2..3634a69 100644 (file)
@@ -71,7 +71,6 @@ namespace System
         FullName,
     }
 
-    [Serializable]
     internal class RuntimeType :
         System.Reflection.TypeInfo, ISerializable, ICloneable
     {
@@ -4912,7 +4911,6 @@ namespace System
     // method (RuntimeType) and an instance of this type will work around the reason to have this type in the 
     // first place. However given RuntimeType is not public all its methods are protected and require full trust
     // to be accessed
-    [Serializable]
     internal class ReflectionOnlyType : RuntimeType
     {
         private ReflectionOnlyType() { }
index 8f4c79c..7393bb2 100644 (file)
@@ -7,7 +7,6 @@ using System.Collections.Generic;
 
 namespace System.Runtime.CompilerServices
 {
-    [Serializable]
     [AttributeUsage(AttributeTargets.Field | AttributeTargets.Parameter, Inherited = false)]
     public abstract class CustomConstantAttribute : Attribute
     {
index 7aca42b..5155d00 100644 (file)
@@ -7,7 +7,6 @@ using System.Diagnostics.Contracts;
 
 namespace System.Runtime.CompilerServices
 {
-    [Serializable]
     [AttributeUsage(AttributeTargets.Field | AttributeTargets.Parameter, Inherited = false)]
     public sealed class DateTimeConstantAttribute : CustomConstantAttribute
     {
index 0e2b6f8..f5fd5a2 100644 (file)
@@ -12,7 +12,6 @@ using System.Collections.Generic;
 
 namespace System.Runtime.CompilerServices
 {
-    [Serializable]
     [AttributeUsage(AttributeTargets.Field | AttributeTargets.Parameter, Inherited = false)]
     public sealed class DecimalConstantAttribute : Attribute
     {
index b24018c..3c19ee8 100644 (file)
@@ -12,7 +12,6 @@ namespace System.Runtime.CompilerServices
     // certain method properties.
 
     // Custom attribute to specify additional method properties.
-    [Serializable]
     [AttributeUsage(AttributeTargets.Method | AttributeTargets.Constructor, Inherited = false)]
     sealed public class MethodImplAttribute : Attribute
     {
index 97365b0..2554820 100644 (file)
@@ -17,7 +17,6 @@ using System.Diagnostics.Contracts;
 
 namespace System.Runtime.CompilerServices
 {
-    [Serializable]
     public sealed class RuntimeWrappedException : Exception
     {
         private RuntimeWrappedException(Object thrownObject)
index c4beb02..e009db2 100644 (file)
@@ -9,7 +9,6 @@ using System.Runtime.Versioning;
 
 namespace System.Runtime.InteropServices
 {
-    [Serializable]
     public struct ArrayWithOffset
     {
         //private ArrayWithOffset()
index 77c3813..586b03b 100644 (file)
@@ -17,7 +17,6 @@ using System.Security;
 
 namespace System.Runtime.InteropServices
 {
-    [Serializable]
     public sealed class BStrWrapper
     {
         public BStrWrapper(String value)
index 889a74f..a195616 100644 (file)
@@ -22,7 +22,6 @@ namespace System.Runtime.InteropServices
 {
     // Exception for COM Interop errors where we don't recognize the HResult.
     // 
-    [Serializable]
     public class COMException : ExternalException
     {
         public COMException()
index 2006bf8..05a9e3f 100644 (file)
@@ -33,7 +33,6 @@ namespace System.Runtime.InteropServices.ComTypes
     }
 
     [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
-    [Serializable]
     public struct TYPELIBATTR
     {
         public Guid guid;
index 4b43682..590925a 100644 (file)
@@ -16,7 +16,6 @@ using System;
 
 namespace System.Runtime.InteropServices
 {
-    [Serializable]
     public sealed class CurrencyWrapper
     {
         public CurrencyWrapper(Decimal obj)
index 87ec4ed..5fb78c5 100644 (file)
@@ -17,7 +17,6 @@ using System.Security;
 
 namespace System.Runtime.InteropServices
 {
-    [Serializable]
     public sealed class DispatchWrapper
     {
         public DispatchWrapper(Object obj)
index 73be2c5..34237d5 100644 (file)
@@ -16,7 +16,6 @@ using System;
 
 namespace System.Runtime.InteropServices
 {
-    [Serializable]
     public sealed class ErrorWrapper
     {
         public ErrorWrapper(int errorCode)
index 2fae2b6..30c2c66 100644 (file)
@@ -17,7 +17,6 @@ using System.Runtime.Serialization;
 
 namespace System.Runtime.InteropServices
 {
-    [Serializable]
     public class InvalidComObjectException : SystemException
     {
         public InvalidComObjectException()
index 5154a02..0cbf01d 100644 (file)
@@ -16,7 +16,6 @@ using System.Runtime.Serialization;
 
 namespace System.Runtime.InteropServices
 {
-    [Serializable]
     public class InvalidOleVariantTypeException : SystemException
     {
         public InvalidOleVariantTypeException()
index 6fe7574..16e260e 100644 (file)
@@ -17,7 +17,6 @@ using System.Runtime.Serialization;
 
 namespace System.Runtime.InteropServices
 {
-    [Serializable]
     public class MarshalDirectiveException : SystemException
     {
         public MarshalDirectiveException()
index 5595fad..cbc4fc1 100644 (file)
@@ -19,7 +19,6 @@ namespace System.Runtime.InteropServices
 {
     // Exception for Structured Exception Handler exceptions.
     // 
-    [Serializable]
     public class SEHException : ExternalException
     {
         public SEHException()
index f39f1f3..4f33595 100644 (file)
@@ -16,7 +16,6 @@ using System.Runtime.Serialization;
 
 namespace System.Runtime.InteropServices
 {
-    [Serializable]
     public class SafeArrayRankMismatchException : SystemException
     {
         public SafeArrayRankMismatchException()
index 2283263..ccd31b5 100644 (file)
@@ -17,7 +17,6 @@ using System.Runtime.Serialization;
 
 namespace System.Runtime.InteropServices
 {
-    [Serializable]
     public class SafeArrayTypeMismatchException : SystemException
     {
         public SafeArrayTypeMismatchException()
index c758ae1..de06cbf 100644 (file)
@@ -16,7 +16,6 @@ using System;
 
 namespace System.Runtime.InteropServices
 {
-    [Serializable]
     public sealed class UnknownWrapper
     {
         public UnknownWrapper(Object obj)
index 50689e0..455f075 100644 (file)
@@ -16,8 +16,6 @@ using System;
 
 namespace System.Runtime.InteropServices
 {
-    [Serializable]
-
     public sealed class VariantWrapper
     {
         public VariantWrapper(Object obj)
index 4549a40..0ed0bb3 100644 (file)
@@ -21,7 +21,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
     /// </summary>
     /// <typeparam name="TKey">Type of objects that act as keys.</typeparam>    
     /// <typeparam name="TValue">Type of objects that act as entries / values.</typeparam>
-    [Serializable]
     [DebuggerDisplay("Count = {Count}")]
     internal sealed class ConstantSplittableMap<TKey, TValue> : IMapView<TKey, TValue>
     {
@@ -169,7 +168,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
 
         #region IKeyValuePair Enumerator
 
-        [Serializable]
         internal struct IKeyValuePairEnumerator : IEnumerator<IKeyValuePair<TKey, TValue>>
         {
             private KeyValuePair<TKey, TValue>[] _array;
index 2a34aba..f2434ce 100644 (file)
@@ -9,7 +9,6 @@ using System.Diagnostics;
 
 namespace System.Runtime.InteropServices.WindowsRuntime
 {
-    [Serializable]
     [DebuggerDisplay("Count = {Count}")]
     internal sealed class DictionaryKeyCollection<TKey, TValue> : ICollection<TKey>
     {
@@ -83,7 +82,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
     }  // public class DictionaryKeyCollection<TKey, TValue>
 
 
-    [Serializable]
     internal sealed class DictionaryKeyEnumerator<TKey, TValue> : IEnumerator<TKey>
     {
         private readonly IDictionary<TKey, TValue> dictionary;
index 083b0ff..6be0ddd 100644 (file)
@@ -13,7 +13,6 @@ using System.Runtime.InteropServices.WindowsRuntime;
 
 namespace System.Runtime.InteropServices.WindowsRuntime
 {
-    [Serializable]
     [DebuggerDisplay("Count = {Count}")]
     internal sealed class DictionaryValueCollection<TKey, TValue> : ICollection<TValue>
     {
@@ -91,7 +90,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
     }  // public class DictionaryValueCollection<TKey, TValue>
 
 
-    [Serializable]
     internal sealed class DictionaryValueEnumerator<TKey, TValue> : IEnumerator<TValue>
     {
         private readonly IDictionary<TKey, TValue> dictionary;
index e06364d..0900012 100644 (file)
@@ -123,7 +123,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
     }
 
     // Note: One day we may make these return IReadOnlyCollection<T>
-    [Serializable]
     [DebuggerDisplay("Count = {Count}")]
     internal sealed class ReadOnlyDictionaryKeyCollection<TKey, TValue> : IEnumerable<TKey>
     {
@@ -178,7 +177,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
     }  // public class ReadOnlyDictionaryKeyCollection<TKey, TValue>
 
 
-    [Serializable]
     internal sealed class ReadOnlyDictionaryKeyEnumerator<TKey, TValue> : IEnumerator<TKey>
     {
         private readonly IReadOnlyDictionary<TKey, TValue> dictionary;
@@ -220,7 +218,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
     }  // class ReadOnlyDictionaryKeyEnumerator<TKey, TValue>
 
 
-    [Serializable]
     [DebuggerDisplay("Count = {Count}")]
     internal sealed class ReadOnlyDictionaryValueCollection<TKey, TValue> : IEnumerable<TValue>
     {
@@ -279,7 +276,6 @@ namespace System.Runtime.InteropServices.WindowsRuntime
     }  // public class ReadOnlyDictionaryValueCollection<TKey, TValue>
 
 
-    [Serializable]
     internal sealed class ReadOnlyDictionaryValueEnumerator<TKey, TValue> : IEnumerator<TValue>
     {
         private readonly IReadOnlyDictionary<TKey, TValue> dictionary;
index 4387783..129e8db 100644 (file)
@@ -23,7 +23,6 @@ namespace System
     using System.Diagnostics.Contracts;
     using StackCrawlMark = System.Threading.StackCrawlMark;
 
-    [Serializable]
     public unsafe struct RuntimeTypeHandle : ISerializable
     {
         // Returns handle for interop with EE. The handle is guaranteed to be non-null.
@@ -753,7 +752,6 @@ namespace System
         }
     }
 
-    [Serializable]
     public unsafe struct RuntimeMethodHandle : ISerializable
     {
         // Returns handle for interop with EE. The handle is guaranteed to be non-null.
@@ -1133,7 +1131,6 @@ namespace System
         }
     }
 
-    [Serializable]
     public unsafe struct RuntimeFieldHandle : ISerializable
     {
         // Returns handle for interop with EE. The handle is guaranteed to be non-null.
index ad88ef4..f70213f 100644 (file)
@@ -14,7 +14,6 @@ using System.Diagnostics.Contracts;
 
 namespace System.Text
 {
-    [Serializable]
     internal sealed class InternalDecoderBestFitFallback : DecoderFallback
     {
         // Our variables
index b98ef74..953e87a 100644 (file)
@@ -8,7 +8,6 @@ using System.Globalization;
 
 namespace System.Text
 {
-    [Serializable]
     public sealed class DecoderExceptionFallback : DecoderFallback
     {
         // Construction
@@ -99,7 +98,6 @@ namespace System.Text
     }
 
     // Exception for decoding unknown byte sequences.
-    [Serializable]
     public sealed class DecoderFallbackException : ArgumentException
     {
         private byte[] bytesUnknown = null;
index 9311cda..2a56706 100644 (file)
@@ -13,7 +13,6 @@ using System.Diagnostics.Contracts;
 
 namespace System.Text
 {
-    [Serializable]
     public abstract class DecoderFallback
     {
         internal bool bIsMicrosoftBestFitFallback = false;
index 6fcfc79..03a6d74 100644 (file)
@@ -21,7 +21,6 @@ namespace System.Text
     // of Encoding objects.
     //
 
-    [Serializable]
     internal class DecoderNLS : Decoder, ISerializable
     {
         // Remember our encoding
index b274691..0eaca3d 100644 (file)
@@ -8,7 +8,6 @@ using System.Diagnostics.Contracts;
 
 namespace System.Text
 {
-    [Serializable]
     public sealed class DecoderReplacementFallback : DecoderFallback
     {
         // Our variables
index eb31655..b007f57 100644 (file)
@@ -15,7 +15,6 @@ using System.Diagnostics.Contracts;
 
 namespace System.Text
 {
-    [Serializable]
     internal sealed class InternalEncoderBestFitFallback : EncoderFallback
     {
         // Our variables
index b75847d..fb5a423 100644 (file)
@@ -8,7 +8,6 @@ using System.Diagnostics.Contracts;
 
 namespace System.Text
 {
-    [Serializable]
     public sealed class EncoderExceptionFallback : EncoderFallback
     {
         // Construction
@@ -99,7 +98,6 @@ namespace System.Text
         }
     }
 
-    [Serializable]
     public sealed class EncoderFallbackException : ArgumentException
     {
         private char charUnknown;
index 410b6f5..c3b9f47 100644 (file)
@@ -10,7 +10,6 @@ using System.Diagnostics.Contracts;
 
 namespace System.Text
 {
-    [Serializable]
     public abstract class EncoderFallback
     {
         // disable csharp compiler warning #0414: field assigned unused value
index 99a26ca..4e75959 100644 (file)
@@ -21,7 +21,6 @@ namespace System.Text
     // of Encoding objects.
     //
 
-    [Serializable]
     internal class EncoderNLS : Encoder, ISerializable
     {
         // Need a place for the last left over character, most of our encodings use this
index 65b807c..a9ce9c1 100644 (file)
@@ -9,7 +9,6 @@ using System.Diagnostics.Contracts;
 
 namespace System.Text
 {
-    [Serializable]
     public sealed class EncoderReplacementFallback : EncoderFallback
     {
         // Our variables
index 5788051..d6ab91d 100644 (file)
@@ -81,7 +81,6 @@ namespace System.Text
     // generally executes faster.
     //
 
-    [Serializable]
     public abstract class Encoding : ICloneable
     {
         // For netcore we use UTF8 as default encoding since ANSI isn't available
@@ -1408,7 +1407,6 @@ namespace System.Text
             decoder.ClearMustFlush();
         }
 
-        [Serializable]
         internal sealed class DefaultEncoder : Encoder, IObjectReference, ISerializable
         {
             private Encoding m_encoding;
@@ -1530,7 +1528,6 @@ namespace System.Text
             }
         }
 
-        [Serializable]
         internal sealed class DefaultDecoder : Decoder, IObjectReference, ISerializable
         {
             private Encoding m_encoding;
index e456b85..b3e284d 100644 (file)
@@ -18,7 +18,6 @@ namespace System.Text
     // Latin1Encoding is a simple override to optimize the GetString version of Latin1Encoding.
     // because of the best fit cases we can't do this when encoding the string, only when decoding
     //
-    [Serializable]
     internal class Latin1Encoding : EncodingNLS, ISerializable
     {
         // Used by Encoding.Latin1 for lazy initialization
index 372af0d..5e524d2 100644 (file)
@@ -13,7 +13,6 @@ using System.Diagnostics.Contracts;
 
 namespace System.Text
 {
-    [Serializable]
     public class UTF7Encoding : Encoding
     {
         private const String base64Chars =
@@ -832,7 +831,6 @@ namespace System.Text
             return charCount;
         }
 
-        [Serializable]
         // Of all the amazing things... This MUST be Decoder so that our com name
         // for System.Text.Decoder doesn't change
         private sealed class Decoder : DecoderNLS, ISerializable
@@ -898,7 +896,6 @@ namespace System.Text
             }
         }
 
-        [Serializable]
         // Of all the amazing things... This MUST be Encoder so that our com name
         // for System.Text.Encoder doesn't change
         private sealed class Encoder : EncoderNLS, ISerializable
@@ -959,7 +956,6 @@ namespace System.Text
 
         // Preexisting UTF7 behavior for bad bytes was just to spit out the byte as the next char
         // and turn off base64 mode if it was in that mode.  We still exit the mode, but now we fallback.
-        [Serializable]
         private sealed class DecoderUTF7Fallback : DecoderFallback
         {
             // Construction.  Default replacement fallback uses no best fit and ? replacement string
index 9122df0..cd7bd1c 100644 (file)
@@ -19,7 +19,6 @@ using System.Runtime.Serialization;
 
 namespace System.Threading
 {
-    [Serializable]
     public class ThreadInterruptedException : SystemException
     {
         public ThreadInterruptedException()
index 339ba08..a52e1bc 100644 (file)
@@ -22,7 +22,6 @@ using System.Diagnostics.Contracts;
 
 namespace System
 {
-    [Serializable]
     public class TypeLoadException : SystemException, ISerializable
     {
         public TypeLoadException()
index cae5bda..b468ab2 100644 (file)
@@ -23,7 +23,6 @@ using System.Diagnostics.Contracts;
 
 namespace System
 {
-    [Serializable]
     [StructLayout(LayoutKind.Sequential)]
     internal struct Variant
     {