diff --git a/src/mscorlib/model.xml b/src/mscorlib/model.xml index ac56d95a88f4..8f5aba01fe19 100644 --- a/src/mscorlib/model.xml +++ b/src/mscorlib/model.xml @@ -6352,6 +6352,9 @@ + + + @@ -9526,11 +9529,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/mscorlib/src/System/DateTime.cs b/src/mscorlib/src/System/DateTime.cs index b2711ca3a20b..91a20768020f 100644 --- a/src/mscorlib/src/System/DateTime.cs +++ b/src/mscorlib/src/System/DateTime.cs @@ -55,7 +55,11 @@ namespace System { #if FEATURE_SERIALIZATION [Serializable] #endif - public struct DateTime : IComparable, IFormattable, IConvertible, ISerializable, IComparable,IEquatable { + public struct DateTime : IComparable, IFormattable, IConvertible, IComparable, IEquatable +#if FEATURE_SERIALIZATION + , ISerializable +#endif + { // Number of 100ns ticks per time unit private const long TicksPerMillisecond = 10000; diff --git a/src/mscorlib/src/System/DateTimeOffset.cs b/src/mscorlib/src/System/DateTimeOffset.cs index 9b755a13a04b..28c115cb2578 100644 --- a/src/mscorlib/src/System/DateTimeOffset.cs +++ b/src/mscorlib/src/System/DateTimeOffset.cs @@ -36,9 +36,12 @@ namespace System { #if FEATURE_SERIALIZATION [Serializable] #endif - public struct DateTimeOffset : IComparable, IFormattable, ISerializable, IDeserializationCallback, - IComparable, IEquatable { - + public struct DateTimeOffset : IComparable, IFormattable, + IComparable, IEquatable +#if FEATURE_SERIALIZATION + , ISerializable, IDeserializationCallback +#endif + { // Constants internal const Int64 MaxOffset = TimeSpan.TicksPerHour * 14; internal const Int64 MinOffset = -MaxOffset; diff --git a/src/mscorlib/src/System/Decimal.cs b/src/mscorlib/src/System/Decimal.cs index 4fa0779fb6b3..254b0bc81801 100644 --- a/src/mscorlib/src/System/Decimal.cs +++ b/src/mscorlib/src/System/Decimal.cs @@ -61,8 +61,11 @@ namespace System { #endif [System.Runtime.InteropServices.ComVisible(true)] [System.Runtime.Versioning.NonVersionable] // This only applies to field layout - public struct Decimal : IFormattable, IComparable, IConvertible, IDeserializationCallback - , IComparable, IEquatable { + public struct Decimal : IFormattable, IComparable, IConvertible, IComparable, IEquatable +#if FEATURE_SERIALIZATION + , IDeserializationCallback +#endif + { // Sign mask for the flags field. A value of zero in this bit indicates a // positive Decimal value, and a value of one in this bit indicates a diff --git a/src/mscorlib/src/System/Globalization/TextInfo.cs b/src/mscorlib/src/System/Globalization/TextInfo.cs index b88318c8bc34..cba9556d30ee 100644 --- a/src/mscorlib/src/System/Globalization/TextInfo.cs +++ b/src/mscorlib/src/System/Globalization/TextInfo.cs @@ -31,7 +31,10 @@ namespace System.Globalization { [Serializable] #endif [System.Runtime.InteropServices.ComVisible(true)] - public class TextInfo : ICloneable, IDeserializationCallback + public class TextInfo : ICloneable +#if FEATURE_SERIALIZATION + , IDeserializationCallback +#endif { //--------------------------------------------------------------------// // Internal Information // diff --git a/src/mscorlib/src/System/IO/DriveInfo.cs b/src/mscorlib/src/System/IO/DriveInfo.cs index 07d064b7c77d..a3cacf609a3c 100644 --- a/src/mscorlib/src/System/IO/DriveInfo.cs +++ b/src/mscorlib/src/System/IO/DriveInfo.cs @@ -44,7 +44,10 @@ public enum DriveType [Serializable] #endif [ComVisible(true)] - public sealed class DriveInfo : ISerializable + public sealed class DriveInfo +#if FEATURE_SERIALIZATION + , ISerializable +#endif { private String _name; diff --git a/src/mscorlib/src/System/IntPtr.cs b/src/mscorlib/src/System/IntPtr.cs index 0ddea7cf8625..9933ad4fb311 100644 --- a/src/mscorlib/src/System/IntPtr.cs +++ b/src/mscorlib/src/System/IntPtr.cs @@ -26,7 +26,10 @@ namespace System { [Serializable] #endif [System.Runtime.InteropServices.ComVisible(true)] - public struct IntPtr : ISerializable + public struct IntPtr +#if FEATURE_SERIALIZATION + : ISerializable +#endif { [SecurityCritical] unsafe private void* m_value; // The compiler treats void* closest to uint hence explicit casts are required to preserve int behavior diff --git a/src/mscorlib/src/System/Reflection/AssemblyName.cs b/src/mscorlib/src/System/Reflection/AssemblyName.cs index 5575af18e522..132db90e3cff 100644 --- a/src/mscorlib/src/System/Reflection/AssemblyName.cs +++ b/src/mscorlib/src/System/Reflection/AssemblyName.cs @@ -31,7 +31,10 @@ namespace System.Reflection { [ClassInterface(ClassInterfaceType.None)] [ComDefaultInterface(typeof(_AssemblyName))] [System.Runtime.InteropServices.ComVisible(true)] - public sealed class AssemblyName : _AssemblyName, ICloneable, ISerializable, IDeserializationCallback + public sealed class AssemblyName : _AssemblyName, ICloneable +#if FEATURE_SERIALIZATION + , ISerializable, IDeserializationCallback +#endif { // // READ ME diff --git a/src/mscorlib/src/System/Reflection/Missing.cs b/src/mscorlib/src/System/Reflection/Missing.cs index 9fc6fa239d53..7b539b3938e5 100644 --- a/src/mscorlib/src/System/Reflection/Missing.cs +++ b/src/mscorlib/src/System/Reflection/Missing.cs @@ -17,7 +17,10 @@ namespace System.Reflection [Serializable] #endif [System.Runtime.InteropServices.ComVisible(true)] - public sealed class Missing: ISerializable + public sealed class Missing +#if FEATURE_SERIALIZATION + : ISerializable +#endif { public static readonly Missing Value = new Missing(); diff --git a/src/mscorlib/src/System/Reflection/Pointer.cs b/src/mscorlib/src/System/Reflection/Pointer.cs index fd3b2dac64e3..9008566f4ad7 100644 --- a/src/mscorlib/src/System/Reflection/Pointer.cs +++ b/src/mscorlib/src/System/Reflection/Pointer.cs @@ -22,8 +22,12 @@ namespace System.Reflection { [Serializable] #endif [System.Runtime.InteropServices.ComVisible(true)] - public sealed class Pointer: ISerializable { - [SecurityCritical] + public sealed class Pointer +#if FEATURE_SERIALIZATION + , ISerializable +#endif + { + [SecurityCritical] unsafe private void* _ptr; private RuntimeType _ptrType; diff --git a/src/mscorlib/src/System/Runtime/Serialization/IDeserializationCallback.cs b/src/mscorlib/src/System/Runtime/Serialization/IDeserializationCallback.cs index d13c46f991c7..e2497e5d34fb 100644 --- a/src/mscorlib/src/System/Runtime/Serialization/IDeserializationCallback.cs +++ b/src/mscorlib/src/System/Runtime/Serialization/IDeserializationCallback.cs @@ -18,9 +18,6 @@ namespace System.Runtime.Serialization { // Interface does not need to be marked with the serializable attribute [System.Runtime.InteropServices.ComVisible(true)] public interface IDeserializationCallback { -#if FEATURE_SERIALIZATION void OnDeserialization(Object sender); -#endif - } } diff --git a/src/mscorlib/src/System/Runtime/Serialization/ISerializable.cs b/src/mscorlib/src/System/Runtime/Serialization/ISerializable.cs index 006b7fd50108..e59fa6504340 100644 --- a/src/mscorlib/src/System/Runtime/Serialization/ISerializable.cs +++ b/src/mscorlib/src/System/Runtime/Serialization/ISerializable.cs @@ -22,10 +22,8 @@ namespace System.Runtime.Serialization { [System.Runtime.InteropServices.ComVisible(true)] public interface ISerializable { -#if FEATURE_SERIALIZATION [System.Security.SecurityCritical] // auto-generated_required void GetObjectData(SerializationInfo info, StreamingContext context); -#endif } } diff --git a/src/mscorlib/src/System/Security/PermissionSet.cs b/src/mscorlib/src/System/Security/PermissionSet.cs index 2d0df2e8e4c1..e36f0752ad30 100644 --- a/src/mscorlib/src/System/Security/PermissionSet.cs +++ b/src/mscorlib/src/System/Security/PermissionSet.cs @@ -40,12 +40,15 @@ internal enum SpecialPermissionSetFlag [StrongNameIdentityPermissionAttribute(SecurityAction.InheritanceDemand, Name = "mscorlib", PublicKey = "0x" + AssemblyRef.EcmaPublicKeyFull)] #endif [System.Runtime.InteropServices.ComVisible(true)] - public class PermissionSet : ISecurityEncodable, ICollection, IStackWalk, IDeserializationCallback + public class PermissionSet : ISecurityEncodable, ICollection, IStackWalk +#if FEATURE_SERIALIZATION + , IDeserializationCallback +#endif { - #if _DEBUG +#if _DEBUG internal static readonly bool debug; - #endif - +#endif + [System.Diagnostics.Conditional( "_DEBUG" )] private static void DEBUG_WRITE(String str) { #if _DEBUG diff --git a/src/mscorlib/src/System/Text/CodePageEncoding.cs b/src/mscorlib/src/System/Text/CodePageEncoding.cs index d315c3ff2c66..e04ed49fcfa1 100644 --- a/src/mscorlib/src/System/Text/CodePageEncoding.cs +++ b/src/mscorlib/src/System/Text/CodePageEncoding.cs @@ -23,7 +23,10 @@ namespace System.Text #if FEATURE_SERIALIZATION [Serializable] #endif - internal sealed class CodePageEncoding : ISerializable, IObjectReference + internal sealed class CodePageEncoding : IObjectReference +#if FEATURE_SERIALIZATION + , ISerializable +#endif { // Temp stuff [NonSerialized] @@ -109,7 +112,10 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex #if FEATURE_SERIALIZATION [Serializable] #endif - internal sealed class Decoder : ISerializable, IObjectReference + internal sealed class Decoder : IObjectReference +#if FEATURE_SERIALIZATION + , ISerializable +#endif { // Might need this when GetRealObjecting [NonSerialized] diff --git a/src/mscorlib/src/System/Text/DecoderNLS.cs b/src/mscorlib/src/System/Text/DecoderNLS.cs index e766d99c60a3..ad87f9ed266a 100644 --- a/src/mscorlib/src/System/Text/DecoderNLS.cs +++ b/src/mscorlib/src/System/Text/DecoderNLS.cs @@ -24,7 +24,10 @@ namespace System.Text #if FEATURE_SERIALIZATION [Serializable] #endif - internal class DecoderNLS : Decoder, ISerializable + internal class DecoderNLS : Decoder +#if FEATURE_SERIALIZATION + , ISerializable +#endif { // Remember our encoding protected Encoding m_encoding; diff --git a/src/mscorlib/src/System/Text/EncoderNLS.cs b/src/mscorlib/src/System/Text/EncoderNLS.cs index 35f83893f44e..6eefaacd70ea 100644 --- a/src/mscorlib/src/System/Text/EncoderNLS.cs +++ b/src/mscorlib/src/System/Text/EncoderNLS.cs @@ -24,7 +24,10 @@ namespace System.Text #if FEATURE_SERIALIZATION [Serializable] #endif - internal class EncoderNLS : Encoder, ISerializable + internal class EncoderNLS : Encoder +#if FEATURE_SERIALIZATION + , ISerializable +#endif { // Need a place for the last left over character, most of our encodings use this internal char charLeftOver; diff --git a/src/mscorlib/src/System/Text/Encoding.cs b/src/mscorlib/src/System/Text/Encoding.cs index 300310524a4c..e0fe8834408b 100644 --- a/src/mscorlib/src/System/Text/Encoding.cs +++ b/src/mscorlib/src/System/Text/Encoding.cs @@ -1615,7 +1615,10 @@ internal void ThrowCharsOverflow(DecoderNLS decoder, bool nothingDecoded) #if FEATURE_SERIALIZATION [Serializable] #endif - internal class DefaultEncoder : Encoder, ISerializable, IObjectReference + internal class DefaultEncoder : Encoder, IObjectReference +#if FEATURE_SERIALIZATION + , ISerializable +#endif { private Encoding m_encoding; [NonSerialized] private bool m_hasInitializedEncoding; @@ -1745,7 +1748,10 @@ public unsafe override int GetBytes(char* chars, int charCount, #if FEATURE_SERIALIZATION [Serializable] #endif - internal class DefaultDecoder : Decoder, ISerializable, IObjectReference + internal class DefaultDecoder : Decoder, IObjectReference +#if FEATURE_SERIALIZATION + , ISerializable +#endif { private Encoding m_encoding; [NonSerialized] diff --git a/src/mscorlib/src/System/Text/ISCIIEncoding.cs b/src/mscorlib/src/System/Text/ISCIIEncoding.cs index a26018f6cc95..7e73bb70b94c 100644 --- a/src/mscorlib/src/System/Text/ISCIIEncoding.cs +++ b/src/mscorlib/src/System/Text/ISCIIEncoding.cs @@ -31,7 +31,10 @@ namespace System.Text #if FEATURE_SERIALIZATION [Serializable] #endif - internal class ISCIIEncoding : EncodingNLS, ISerializable + internal class ISCIIEncoding : EncodingNLS +#if FEATURE_SERIALIZATION + , ISerializable +#endif { // Constants private const int CodeDefault = 0; // 0x40 Default diff --git a/src/mscorlib/src/System/Text/Latin1Encoding.cs b/src/mscorlib/src/System/Text/Latin1Encoding.cs index bf71bf36f751..a623630ef1cb 100644 --- a/src/mscorlib/src/System/Text/Latin1Encoding.cs +++ b/src/mscorlib/src/System/Text/Latin1Encoding.cs @@ -22,7 +22,10 @@ namespace System.Text #if FEATURE_SERIALIZATION [Serializable] #endif - internal class Latin1Encoding : EncodingNLS, ISerializable + internal class Latin1Encoding : EncodingNLS +#if FEATURE_SERIALIZATION + , ISerializable +#endif { // We only use the best-fit table, of which ASCII is a superset for us. public Latin1Encoding() : base(Encoding.ISO_8859_1) diff --git a/src/mscorlib/src/System/Text/MLangCodePageEncoding.cs b/src/mscorlib/src/System/Text/MLangCodePageEncoding.cs index 2ae8c6add40f..747e1084ace7 100644 --- a/src/mscorlib/src/System/Text/MLangCodePageEncoding.cs +++ b/src/mscorlib/src/System/Text/MLangCodePageEncoding.cs @@ -25,7 +25,10 @@ namespace System.Text #if FEATURE_SERIALIZATION [Serializable] #endif - internal sealed class MLangCodePageEncoding : ISerializable, IObjectReference + internal sealed class MLangCodePageEncoding : IObjectReference +#if FEATURE_SERIALIZATION + , ISerializable +#endif { // Temp stuff [NonSerialized] @@ -111,7 +114,10 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex #if FEATURE_SERIALIZATION [Serializable] #endif - internal sealed class MLangEncoder : ISerializable, IObjectReference + internal sealed class MLangEncoder : IObjectReference +#if FEATURE_SERIALIZATION + , ISerializable +#endif { // Might need this when GetRealObjecting [NonSerialized] @@ -151,7 +157,10 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex #if FEATURE_SERIALIZATION [Serializable] #endif - internal sealed class MLangDecoder : ISerializable, IObjectReference + internal sealed class MLangDecoder : IObjectReference +#if FEATURE_SERIALIZATION + , ISerializable +#endif { // Might need this when GetRealObjecting [NonSerialized] diff --git a/src/mscorlib/src/System/Text/StringBuilder.cs b/src/mscorlib/src/System/Text/StringBuilder.cs index d3e5bcb3127e..c519f1c0b28c 100644 --- a/src/mscorlib/src/System/Text/StringBuilder.cs +++ b/src/mscorlib/src/System/Text/StringBuilder.cs @@ -43,7 +43,11 @@ namespace System.Text { #if FEATURE_SERIALIZATION [Serializable] #endif - public sealed class StringBuilder : ISerializable { + public sealed class StringBuilder +#if FEATURE_SERIALIZATION + : ISerializable +#endif + { // A StringBuilder is internally represented as a linked list of blocks each of which holds // a chunk of the string. It turns out string as a whole can also be represented as just a chunk, // so that is what we do. diff --git a/src/mscorlib/src/System/Text/SurrogateEncoder.cs b/src/mscorlib/src/System/Text/SurrogateEncoder.cs index 1bbdc7e49f09..f1115c553728 100644 --- a/src/mscorlib/src/System/Text/SurrogateEncoder.cs +++ b/src/mscorlib/src/System/Text/SurrogateEncoder.cs @@ -22,7 +22,10 @@ namespace System.Text #if FEATURE_SERIALIZATION [Serializable] #endif - internal sealed class SurrogateEncoder : ISerializable, IObjectReference + internal sealed class SurrogateEncoder : IObjectReference +#if FEATURE_SERIALIZATION + , ISerializable +#endif { // Might need this when GetRealObjecting [NonSerialized] diff --git a/src/mscorlib/src/System/Text/UTF7Encoding.cs b/src/mscorlib/src/System/Text/UTF7Encoding.cs index 8fed1dea48f5..8e0c07cdc100 100644 --- a/src/mscorlib/src/System/Text/UTF7Encoding.cs +++ b/src/mscorlib/src/System/Text/UTF7Encoding.cs @@ -649,9 +649,13 @@ public override int GetMaxCharCount(int byteCount) #endif // Of all the amazing things... This MUST be Decoder so that our com name // for System.Text.Decoder doesn't change - private class Decoder : DecoderNLS, ISerializable + private class Decoder : DecoderNLS +#if FEATURE_SERIALIZATION + , ISerializable +#endif { - /*private*/ internal int bits; + /*private*/ + internal int bits; /*private*/ internal int bitCount; /*private*/ internal bool firstByte; @@ -717,9 +721,13 @@ internal override bool HasState #endif // Of all the amazing things... This MUST be Encoder so that our com name // for System.Text.Encoder doesn't change - private class Encoder : EncoderNLS, ISerializable + private class Encoder : EncoderNLS +#if FEATURE_SERIALIZATION + , ISerializable +#endif { - /*private*/ internal int bits; + /*private*/ + internal int bits; /*private*/ internal int bitCount; public Encoder(UTF7Encoding encoding) : base(encoding) diff --git a/src/mscorlib/src/System/Text/UTF8Encoding.cs b/src/mscorlib/src/System/Text/UTF8Encoding.cs index fc75f9478a02..559e44522338 100644 --- a/src/mscorlib/src/System/Text/UTF8Encoding.cs +++ b/src/mscorlib/src/System/Text/UTF8Encoding.cs @@ -2157,7 +2157,10 @@ public override int GetHashCode() { #if FEATURE_SERIALIZATION [Serializable] #endif - internal class UTF8Encoder : EncoderNLS, ISerializable + internal class UTF8Encoder : EncoderNLS +#if FEATURE_SERIALIZATION + , ISerializable +#endif { // We must save a high surrogate value until the next call, looking // for a low surrogate value. @@ -2234,7 +2237,10 @@ internal override bool HasState #if FEATURE_SERIALIZATION [Serializable] #endif - internal class UTF8Decoder : DecoderNLS, ISerializable + internal class UTF8Decoder : DecoderNLS +#if FEATURE_SERIALIZATION + , ISerializable +#endif { // We'll need to remember the previous information. See the comments around definition // of FinalByte for details. diff --git a/src/mscorlib/src/System/Text/UnicodeEncoding.cs b/src/mscorlib/src/System/Text/UnicodeEncoding.cs index ffb5fa6a55f8..8cc1fcb864c9 100644 --- a/src/mscorlib/src/System/Text/UnicodeEncoding.cs +++ b/src/mscorlib/src/System/Text/UnicodeEncoding.cs @@ -1766,7 +1766,10 @@ public override int GetHashCode() #if FEATURE_SERIALIZATION [Serializable] #endif - private class Decoder : System.Text.DecoderNLS, ISerializable + private class Decoder : System.Text.DecoderNLS +#if FEATURE_SERIALIZATION + , ISerializable +#endif { internal int lastByte = -1; internal char lastChar = '\0'; diff --git a/src/mscorlib/src/System/TimeZoneInfo.cs b/src/mscorlib/src/System/TimeZoneInfo.cs index 865c9870736a..e84a5fff8a61 100644 --- a/src/mscorlib/src/System/TimeZoneInfo.cs +++ b/src/mscorlib/src/System/TimeZoneInfo.cs @@ -55,8 +55,11 @@ internal enum TimeZoneInfoOptions { #endif [System.Security.Permissions.HostProtection(MayLeakOnAbort = true)] [TypeForwardedFrom("System.Core, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=b77a5c561934e089")] - sealed public class TimeZoneInfo : IEquatable, ISerializable, IDeserializationCallback { - + sealed public class TimeZoneInfo : IEquatable +#if FEATURE_SERIALIZATION + , ISerializable, IDeserializationCallback +#endif + { // ---- SECTION: members supporting exposed properties -------------* private String m_id; private String m_displayName; @@ -1129,7 +1132,7 @@ static public TimeZoneInfo Utc { // // private ctor // -#if FEATURE_WIN32_REGISTRY +#if FEATURE_WIN32_REGISTRY [System.Security.SecurityCritical] // auto-generated private TimeZoneInfo(Win32Native.TimeZoneInformation zone, Boolean dstDisabled) { @@ -4459,7 +4462,11 @@ static private void ValidateTimeZoneInfo( #endif [System.Security.Permissions.HostProtection(MayLeakOnAbort = true)] [TypeForwardedFrom("System.Core, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=b77a5c561934e089")] - sealed public class AdjustmentRule : IEquatable, ISerializable, IDeserializationCallback { + sealed public class AdjustmentRule : IEquatable +#if FEATURE_SERIALIZATION + , ISerializable, IDeserializationCallback +#endif + { // ---- SECTION: members supporting exposed properties -------------* private DateTime m_dateStart; @@ -4770,8 +4777,11 @@ void ISerializable.GetObjectData(SerializationInfo info, StreamingContext contex #endif [System.Security.Permissions.HostProtection(MayLeakOnAbort = true)] [TypeForwardedFrom("System.Core, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=b77a5c561934e089")] - public struct TransitionTime : IEquatable, ISerializable, IDeserializationCallback { - + public struct TransitionTime : IEquatable +#if FEATURE_SERIALIZATION + , ISerializable, IDeserializationCallback +#endif + { // ---- SECTION: members supporting exposed properties -------------* private DateTime m_timeOfDay; private byte m_month; diff --git a/src/mscorlib/src/System/UIntPtr.cs b/src/mscorlib/src/System/UIntPtr.cs index 623aed7763e3..fdeff3d6f08a 100644 --- a/src/mscorlib/src/System/UIntPtr.cs +++ b/src/mscorlib/src/System/UIntPtr.cs @@ -24,7 +24,10 @@ namespace System { #endif [CLSCompliant(false)] [System.Runtime.InteropServices.ComVisible(true)] - public struct UIntPtr : ISerializable + public struct UIntPtr +#if FEATURE_SERIALIZATION + : ISerializable +#endif { [SecurityCritical] unsafe private void* m_value;