API diff

mscorlib.dll
System.dll
System.Core.dll
System.Data.dll
System.Runtime.Serialization.dll
System.Xml.dll
System.Transactions.dll
Xamarin.WatchOS.dll
MonoTouch.NUnitLite.dll
System.Net.Http.dll


mscorlib.dll

Hide non-breaking changes

Namespace Mono

Type Changed: Mono.Runtime

Added methods:

	public static void InstallSignalHandlers ();
	public static void RemoveSignalHandlers ();

Namespace System

Type Changed: System.AppDomain

Added event:

	public event ResolveEventHandler ReflectionOnlyAssemblyResolve;

Added method:

	[Obsolete ("Use AppDomainSetup.DynamicBase")]
	public void SetDynamicBase (string path);

Type Changed: System.ContextBoundObject

Modified base type: System.Object System.MarshalByRefObject

Type Changed: System.Environment

Added property:

	public static string SystemDirectory { get; }

Type Changed: System.GC

Added methods:

	public static void Collect (int generation, GCCollectionMode mode, bool blocking, bool compacting);
	public static void EndNoGCRegion ();
	public static bool TryStartNoGCRegion (long totalSize);
	public static bool TryStartNoGCRegion (long totalSize, bool disallowFullBlockingGC);
	public static bool TryStartNoGCRegion (long totalSize, long lohSize);
	public static bool TryStartNoGCRegion (long totalSize, long lohSize, bool disallowFullBlockingGC);

Namespace System.Diagnostics.Tracing

Type Changed: System.Diagnostics.Tracing.EventSourceException

Added constructor:

	protected EventSourceException (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);

New Type System.Diagnostics.Tracing.EventCounter

public class EventCounter {
	// constructors
	public EventCounter (string name, EventSource eventSource);
	// methods
	public void WriteMetric (float value);
}

Namespace System.Globalization

Type Changed: System.Globalization.CompareInfo

Added property:

	public SortVersion Version { get; }

Type Changed: System.Globalization.CultureInfo

Added properties:

	public CultureTypes CultureTypes { get; }
	public string IetfLanguageTag { get; }
	public virtual int KeyboardLayoutId { get; }

Added method:

	public CultureInfo GetConsoleFallbackUICulture ();

Namespace System.IO

Type Changed: System.IO.File

Added methods:

	public static FileStream Create (string path, int bufferSize, FileOptions options, System.Security.AccessControl.FileSecurity fileSecurity);
	public static System.Security.AccessControl.FileSecurity GetAccessControl (string path);
	public static System.Security.AccessControl.FileSecurity GetAccessControl (string path, System.Security.AccessControl.AccessControlSections includeSections);
	public static void SetAccessControl (string path, System.Security.AccessControl.FileSecurity fileSecurity);

Type Changed: System.IO.FileInfo

Added methods:

	public System.Security.AccessControl.FileSecurity GetAccessControl ();
	public System.Security.AccessControl.FileSecurity GetAccessControl (System.Security.AccessControl.AccessControlSections includeSections);
	public void SetAccessControl (System.Security.AccessControl.FileSecurity fileSecurity);

Type Changed: System.IO.FileStream

Added constructors:

	public FileStream (string path, FileMode mode, System.Security.AccessControl.FileSystemRights rights, FileShare share, int bufferSize, FileOptions options);
	public FileStream (string path, FileMode mode, System.Security.AccessControl.FileSystemRights rights, FileShare share, int bufferSize, FileOptions options, System.Security.AccessControl.FileSecurity fileSecurity);

Added methods:

	public System.Security.AccessControl.FileSecurity GetAccessControl ();
	public void SetAccessControl (System.Security.AccessControl.FileSecurity fileSecurity);

Type Changed: System.IO.FileSystemInfo

Modified base type: System.Object System.MarshalByRefObject

Type Changed: System.IO.Stream

Modified base type: System.Object System.MarshalByRefObject

Type Changed: System.IO.TextReader

Modified base type: System.Object System.MarshalByRefObject

Type Changed: System.IO.TextWriter

Modified base type: System.Object System.MarshalByRefObject

Namespace System.Reflection

Type Changed: System.Reflection.Assembly

Added interface:

	System.Runtime.Serialization.ISerializable

Added property:

	public virtual System.Security.SecurityRuleSet SecurityRuleSet { get; }

Type Changed: System.Reflection.TargetException

Modified base type: System.Exception System.ApplicationException

Type Changed: System.Reflection.TargetInvocationException

Modified base type: System.Exception System.ApplicationException

Type Changed: System.Reflection.TargetParameterCountException

Modified base type: System.Exception System.ApplicationException

Namespace System.Reflection.Emit

New Type System.Reflection.Emit.AssemblyBuilder

public class AssemblyBuilder : System.Reflection.Assembly, System.Reflection.ICustomAttributeProvider, System.Runtime.Serialization.ISerializable {
	// constructors
	public AssemblyBuilder ();
	// methods
	public static AssemblyBuilder DefineDynamicAssembly (System.Reflection.AssemblyName name, AssemblyBuilderAccess access);
	public static AssemblyBuilder DefineDynamicAssembly (System.Reflection.AssemblyName name, AssemblyBuilderAccess access, System.Collections.Generic.IEnumerable<CustomAttributeBuilder> assemblyAttributes);
	public ModuleBuilder DefineDynamicModule (string name);
	public ModuleBuilder GetDynamicModule (string name);
	public void SetCustomAttribute (CustomAttributeBuilder customBuilder);
	public void SetCustomAttribute (System.Reflection.ConstructorInfo con, byte[] binaryAttribute);
}

New Type System.Reflection.Emit.AssemblyBuilderAccess

[Serializable]
[Flags]
public enum AssemblyBuilderAccess {
	ReflectionOnly = 6,
	Run = 1,
	RunAndCollect = 9,
	RunAndSave = 3,
	Save = 2,
}

New Type System.Reflection.Emit.ConstructorBuilder

public abstract class ConstructorBuilder : System.Reflection.ConstructorInfo, System.Reflection.ICustomAttributeProvider, System.Runtime.InteropServices._MemberInfo, System.Runtime.InteropServices._MethodBase {
	// constructors
	protected ConstructorBuilder ();
	// properties
	public override System.Reflection.MethodAttributes Attributes { get; }
	public override System.Type DeclaringType { get; }
	public bool InitLocals { get; set; }
	public override string Name { get; }
	// methods
	public ParameterBuilder DefineParameter (int iSequence, System.Reflection.ParameterAttributes attributes, string strParamName);
	public ILGenerator GetILGenerator ();
	public ILGenerator GetILGenerator (int streamSize);
	public override System.Reflection.ParameterInfo[] GetParameters ();
	public void SetCustomAttribute (CustomAttributeBuilder customBuilder);
	public void SetCustomAttribute (System.Reflection.ConstructorInfo con, byte[] binaryAttribute);
	public void SetImplementationFlags (System.Reflection.MethodImplAttributes attributes);
}

New Type System.Reflection.Emit.CustomAttributeBuilder

public class CustomAttributeBuilder {
	// constructors
	public CustomAttributeBuilder (System.Reflection.ConstructorInfo con, object[] constructorArgs);
	public CustomAttributeBuilder (System.Reflection.ConstructorInfo con, object[] constructorArgs, System.Reflection.FieldInfo[] namedFields, object[] fieldValues);
	public CustomAttributeBuilder (System.Reflection.ConstructorInfo con, object[] constructorArgs, System.Reflection.PropertyInfo[] namedProperties, object[] propertyValues);
	public CustomAttributeBuilder (System.Reflection.ConstructorInfo con, object[] constructorArgs, System.Reflection.PropertyInfo[] namedProperties, object[] propertyValues, System.Reflection.FieldInfo[] namedFields, object[] fieldValues);
}

New Type System.Reflection.Emit.EnumBuilder

public abstract class EnumBuilder : System.Reflection.TypeInfo, System.Reflection.ICustomAttributeProvider, System.Reflection.IReflect, System.Reflection.IReflectableType, System.Runtime.InteropServices._MemberInfo, System.Runtime.InteropServices._Type {
	// constructors
	protected EnumBuilder ();
	// properties
	public override System.Reflection.Assembly Assembly { get; }
	public override string AssemblyQualifiedName { get; }
	public override System.Type BaseType { get; }
	public override string FullName { get; }
	public override System.Guid GUID { get; }
	public override System.Reflection.Module Module { get; }
	public override string Name { get; }
	public override string Namespace { get; }
	public FieldBuilder UnderlyingField { get; }
	// methods
	public System.Reflection.TypeInfo CreateTypeInfo ();
	public FieldBuilder DefineLiteral (string literalName, object literalValue);
	public override System.Type GetElementType ();
	public void SetCustomAttribute (CustomAttributeBuilder customBuilder);
	public void SetCustomAttribute (System.Reflection.ConstructorInfo con, byte[] binaryAttribute);
}

New Type System.Reflection.Emit.EventBuilder

public class EventBuilder {
	// constructors
	public EventBuilder ();
	// methods
	public void AddOtherMethod (MethodBuilder mdBuilder);
	public void SetAddOnMethod (MethodBuilder mdBuilder);
	public void SetCustomAttribute (CustomAttributeBuilder customBuilder);
	public void SetCustomAttribute (System.Reflection.ConstructorInfo con, byte[] binaryAttribute);
	public void SetRaiseMethod (MethodBuilder mdBuilder);
	public void SetRemoveOnMethod (MethodBuilder mdBuilder);
}

New Type System.Reflection.Emit.FieldBuilder

public abstract class FieldBuilder : System.Reflection.FieldInfo, System.Reflection.ICustomAttributeProvider, System.Runtime.InteropServices._MemberInfo {
	// constructors
	protected FieldBuilder ();
	// properties
	public override System.Reflection.FieldAttributes Attributes { get; }
	public override System.Type DeclaringType { get; }
	public override System.Type FieldType { get; }
	public override string Name { get; }
	// methods
	public override object GetValue (object obj);
	public void SetConstant (object defaultValue);
	public void SetCustomAttribute (CustomAttributeBuilder customBuilder);
	public void SetCustomAttribute (System.Reflection.ConstructorInfo con, byte[] binaryAttribute);
	public void SetOffset (int iOffset);
}

New Type System.Reflection.Emit.GenericTypeParameterBuilder

public abstract class GenericTypeParameterBuilder : System.Reflection.TypeInfo, System.Reflection.ICustomAttributeProvider, System.Reflection.IReflect, System.Reflection.IReflectableType, System.Runtime.InteropServices._MemberInfo, System.Runtime.InteropServices._Type {
	// constructors
	protected GenericTypeParameterBuilder ();
	// properties
	public override System.Reflection.Assembly Assembly { get; }
	public override string AssemblyQualifiedName { get; }
	public override System.Type BaseType { get; }
	public override string FullName { get; }
	public override System.Guid GUID { get; }
	public override System.Reflection.Module Module { get; }
	public override string Name { get; }
	public override string Namespace { get; }
	// methods
	public override System.Type GetElementType ();
	public void SetBaseTypeConstraint (System.Type baseTypeConstraint);
	public void SetCustomAttribute (CustomAttributeBuilder customBuilder);
	public void SetCustomAttribute (System.Reflection.ConstructorInfo con, byte[] binaryAttribute);
	public void SetGenericParameterAttributes (System.Reflection.GenericParameterAttributes genericParameterAttributes);
	public void SetInterfaceConstraints (System.Type[] interfaceConstraints);
}

New Type System.Reflection.Emit.ILGenerator

public class ILGenerator {
	// properties
	public int ILOffset { get; }
	// methods
	public virtual void BeginCatchBlock (System.Type exceptionType);
	public virtual void BeginExceptFilterBlock ();
	public virtual Label BeginExceptionBlock ();
	public virtual void BeginFaultBlock ();
	public virtual void BeginFinallyBlock ();
	public virtual void BeginScope ();
	public virtual LocalBuilder DeclareLocal (System.Type localType);
	public virtual LocalBuilder DeclareLocal (System.Type localType, bool pinned);
	public virtual Label DefineLabel ();
	public virtual void Emit (OpCode opcode);
	public virtual void Emit (OpCode opcode, byte arg);
	public virtual void Emit (OpCode opcode, double arg);
	public virtual void Emit (OpCode opcode, short arg);
	public virtual void Emit (OpCode opcode, int arg);
	public virtual void Emit (OpCode opcode, long arg);
	public virtual void Emit (OpCode opcode, System.Reflection.ConstructorInfo con);
	public virtual void Emit (OpCode opcode, Label label);
	public virtual void Emit (OpCode opcode, Label[] labels);
	public virtual void Emit (OpCode opcode, LocalBuilder local);
	public virtual void Emit (OpCode opcode, SignatureHelper signature);
	public virtual void Emit (OpCode opcode, System.Reflection.FieldInfo field);
	public virtual void Emit (OpCode opcode, System.Reflection.MethodInfo meth);
	public void Emit (OpCode opcode, sbyte arg);
	public virtual void Emit (OpCode opcode, float arg);
	public virtual void Emit (OpCode opcode, string str);
	public virtual void Emit (OpCode opcode, System.Type cls);
	public virtual void EmitCall (OpCode opcode, System.Reflection.MethodInfo methodInfo, System.Type[] optionalParameterTypes);
	public virtual void EmitCalli (OpCode opcode, System.Reflection.CallingConventions callingConvention, System.Type returnType, System.Type[] parameterTypes, System.Type[] optionalParameterTypes);
	public virtual void EmitWriteLine (LocalBuilder localBuilder);
	public virtual void EmitWriteLine (System.Reflection.FieldInfo fld);
	public virtual void EmitWriteLine (string value);
	public virtual void EndExceptionBlock ();
	public virtual void EndScope ();
	public virtual void MarkLabel (Label loc);
	public virtual void ThrowException (System.Type excType);
	public virtual void UsingNamespace (string usingNamespace);
}

New Type System.Reflection.Emit.Label

[Serializable]
public struct Label {
	// methods
	public override bool Equals (object obj);
	public bool Equals (Label obj);
	public override int GetHashCode ();
	public static bool op_Equality (Label a, Label b);
	public static bool op_Inequality (Label a, Label b);
}

New Type System.Reflection.Emit.LocalBuilder

public sealed class LocalBuilder : System.Reflection.LocalVariableInfo {
	// properties
	public override bool IsPinned { get; }
	public override int LocalIndex { get; }
	public override System.Type LocalType { get; }
	// methods
	public void SetLocalSymInfo (string name);
	public void SetLocalSymInfo (string name, int startOffset, int endOffset);
}

New Type System.Reflection.Emit.MethodBuilder

public abstract class MethodBuilder : System.Reflection.MethodInfo, System.Reflection.ICustomAttributeProvider, System.Runtime.InteropServices._MemberInfo, System.Runtime.InteropServices._MethodBase {
	// constructors
	protected MethodBuilder ();
	// properties
	public override System.Reflection.MethodAttributes Attributes { get; }
	public override System.Type DeclaringType { get; }
	public bool InitLocals { get; set; }
	public override string Name { get; }
	// methods
	public GenericTypeParameterBuilder[] DefineGenericParameters (string[] names);
	public ParameterBuilder DefineParameter (int position, System.Reflection.ParameterAttributes attributes, string strParamName);
	public ILGenerator GetILGenerator ();
	public ILGenerator GetILGenerator (int size);
	public override System.Reflection.ParameterInfo[] GetParameters ();
	public void SetCustomAttribute (CustomAttributeBuilder customBuilder);
	public void SetCustomAttribute (System.Reflection.ConstructorInfo con, byte[] binaryAttribute);
	public void SetImplementationFlags (System.Reflection.MethodImplAttributes attributes);
	public void SetParameters (System.Type[] parameterTypes);
	public void SetReturnType (System.Type returnType);
	public void SetSignature (System.Type returnType, System.Type[] returnTypeRequiredCustomModifiers, System.Type[] returnTypeOptionalCustomModifiers, System.Type[] parameterTypes, System.Type[][] parameterTypeRequiredCustomModifiers, System.Type[][] parameterTypeOptionalCustomModifiers);
}

New Type System.Reflection.Emit.ModuleBuilder

public abstract class ModuleBuilder : System.Reflection.Module, System.Reflection.ICustomAttributeProvider, System.Runtime.Serialization.ISerializable {
	// constructors
	protected ModuleBuilder ();
	// methods
	public void CreateGlobalFunctions ();
	public EnumBuilder DefineEnum (string name, System.Reflection.TypeAttributes visibility, System.Type underlyingType);
	public MethodBuilder DefineGlobalMethod (string name, System.Reflection.MethodAttributes attributes, System.Type returnType, System.Type[] parameterTypes);
	public MethodBuilder DefineGlobalMethod (string name, System.Reflection.MethodAttributes attributes, System.Reflection.CallingConventions callingConvention, System.Type returnType, System.Type[] parameterTypes);
	public MethodBuilder DefineGlobalMethod (string name, System.Reflection.MethodAttributes attributes, System.Reflection.CallingConventions callingConvention, System.Type returnType, System.Type[] requiredReturnTypeCustomModifiers, System.Type[] optionalReturnTypeCustomModifiers, System.Type[] parameterTypes, System.Type[][] requiredParameterTypeCustomModifiers, System.Type[][] optionalParameterTypeCustomModifiers);
	public FieldBuilder DefineInitializedData (string name, byte[] data, System.Reflection.FieldAttributes attributes);
	public TypeBuilder DefineType (string name);
	public TypeBuilder DefineType (string name, System.Reflection.TypeAttributes attr);
	public TypeBuilder DefineType (string name, System.Reflection.TypeAttributes attr, System.Type parent);
	public TypeBuilder DefineType (string name, System.Reflection.TypeAttributes attr, System.Type parent, int typesize);
	public TypeBuilder DefineType (string name, System.Reflection.TypeAttributes attr, System.Type parent, PackingSize packsize);
	public TypeBuilder DefineType (string name, System.Reflection.TypeAttributes attr, System.Type parent, System.Type[] interfaces);
	public TypeBuilder DefineType (string name, System.Reflection.TypeAttributes attr, System.Type parent, PackingSize packingSize, int typesize);
	public FieldBuilder DefineUninitializedData (string name, int size, System.Reflection.FieldAttributes attributes);
	public System.Reflection.MethodInfo GetArrayMethod (System.Type arrayClass, string methodName, System.Reflection.CallingConventions callingConvention, System.Type returnType, System.Type[] parameterTypes);
	public void SetCustomAttribute (CustomAttributeBuilder customBuilder);
	public void SetCustomAttribute (System.Reflection.ConstructorInfo con, byte[] binaryAttribute);
}

New Type System.Reflection.Emit.ParameterBuilder

public class ParameterBuilder {
	// properties
	public int Attributes { get; }
	public bool IsIn { get; }
	public bool IsOptional { get; }
	public bool IsOut { get; }
	public string Name { get; }
	public int Position { get; }
	// methods
	public virtual void SetConstant (object defaultValue);
	public void SetCustomAttribute (CustomAttributeBuilder customBuilder);
	public void SetCustomAttribute (System.Reflection.ConstructorInfo con, byte[] binaryAttribute);
}

New Type System.Reflection.Emit.PropertyBuilder

public abstract class PropertyBuilder : System.Reflection.PropertyInfo, System.Reflection.ICustomAttributeProvider, System.Runtime.InteropServices._MemberInfo {
	// constructors
	protected PropertyBuilder ();
	// properties
	public override System.Reflection.PropertyAttributes Attributes { get; }
	public override bool CanRead { get; }
	public override bool CanWrite { get; }
	public override System.Type DeclaringType { get; }
	public override string Name { get; }
	public override System.Type PropertyType { get; }
	// methods
	public void AddOtherMethod (MethodBuilder mdBuilder);
	public override System.Reflection.ParameterInfo[] GetIndexParameters ();
	public void SetConstant (object defaultValue);
	public void SetCustomAttribute (CustomAttributeBuilder customBuilder);
	public void SetCustomAttribute (System.Reflection.ConstructorInfo con, byte[] binaryAttribute);
	public void SetGetMethod (MethodBuilder mdBuilder);
	public void SetSetMethod (MethodBuilder mdBuilder);
}

New Type System.Reflection.Emit.SignatureHelper

public class SignatureHelper {
	// methods
	public void AddArgument (System.Type clsArgument);
	public void AddArgument (System.Type argument, bool pinned);
	public void AddArgument (System.Type argument, System.Type[] requiredCustomModifiers, System.Type[] optionalCustomModifiers);
	public void AddArguments (System.Type[] arguments, System.Type[][] requiredCustomModifiers, System.Type[][] optionalCustomModifiers);
	public void AddSentinel ();
	public static SignatureHelper GetFieldSigHelper (System.Reflection.Module mod);
	public static SignatureHelper GetLocalVarSigHelper ();
	public static SignatureHelper GetLocalVarSigHelper (System.Reflection.Module mod);
	public static SignatureHelper GetMethodSigHelper (System.Reflection.CallingConventions callingConvention, System.Type returnType);
	public static SignatureHelper GetMethodSigHelper (System.Reflection.Module mod, System.Reflection.CallingConventions callingConvention, System.Type returnType);
	public static SignatureHelper GetMethodSigHelper (System.Reflection.Module mod, System.Type returnType, System.Type[] parameterTypes);
	public static SignatureHelper GetPropertySigHelper (System.Reflection.Module mod, System.Type returnType, System.Type[] parameterTypes);
	public static SignatureHelper GetPropertySigHelper (System.Reflection.Module mod, System.Type returnType, System.Type[] requiredReturnTypeCustomModifiers, System.Type[] optionalReturnTypeCustomModifiers, System.Type[] parameterTypes, System.Type[][] requiredParameterTypeCustomModifiers, System.Type[][] optionalParameterTypeCustomModifiers);
	public static SignatureHelper GetPropertySigHelper (System.Reflection.Module mod, System.Reflection.CallingConventions callingConvention, System.Type returnType, System.Type[] requiredReturnTypeCustomModifiers, System.Type[] optionalReturnTypeCustomModifiers, System.Type[] parameterTypes, System.Type[][] requiredParameterTypeCustomModifiers, System.Type[][] optionalParameterTypeCustomModifiers);
	public byte[] GetSignature ();
}

New Type System.Reflection.Emit.TypeBuilder

public abstract class TypeBuilder : System.Reflection.TypeInfo, System.Reflection.ICustomAttributeProvider, System.Reflection.IReflect, System.Reflection.IReflectableType, System.Runtime.InteropServices._MemberInfo, System.Runtime.InteropServices._Type {
	// constructors
	protected TypeBuilder ();
	// fields
	public static const int UnspecifiedTypeSize;
	// properties
	public override System.Reflection.Assembly Assembly { get; }
	public override string AssemblyQualifiedName { get; }
	public override System.Type BaseType { get; }
	public override string FullName { get; }
	public override System.Guid GUID { get; }
	public override System.Reflection.Module Module { get; }
	public override string Name { get; }
	public override string Namespace { get; }
	public PackingSize PackingSize { get; }
	public int Size { get; }
	// methods
	public void AddInterfaceImplementation (System.Type interfaceType);
	public System.Reflection.TypeInfo CreateTypeInfo ();
	public ConstructorBuilder DefineConstructor (System.Reflection.MethodAttributes attributes, System.Reflection.CallingConventions callingConvention, System.Type[] parameterTypes);
	public ConstructorBuilder DefineConstructor (System.Reflection.MethodAttributes attributes, System.Reflection.CallingConventions callingConvention, System.Type[] parameterTypes, System.Type[][] requiredCustomModifiers, System.Type[][] optionalCustomModifiers);
	public ConstructorBuilder DefineDefaultConstructor (System.Reflection.MethodAttributes attributes);
	public EventBuilder DefineEvent (string name, System.Reflection.EventAttributes attributes, System.Type eventtype);
	public FieldBuilder DefineField (string fieldName, System.Type type, System.Reflection.FieldAttributes attributes);
	public FieldBuilder DefineField (string fieldName, System.Type type, System.Type[] requiredCustomModifiers, System.Type[] optionalCustomModifiers, System.Reflection.FieldAttributes attributes);
	public GenericTypeParameterBuilder[] DefineGenericParameters (string[] names);
	public FieldBuilder DefineInitializedData (string name, byte[] data, System.Reflection.FieldAttributes attributes);
	public MethodBuilder DefineMethod (string name, System.Reflection.MethodAttributes attributes);
	public MethodBuilder DefineMethod (string name, System.Reflection.MethodAttributes attributes, System.Reflection.CallingConventions callingConvention);
	public MethodBuilder DefineMethod (string name, System.Reflection.MethodAttributes attributes, System.Type returnType, System.Type[] parameterTypes);
	public MethodBuilder DefineMethod (string name, System.Reflection.MethodAttributes attributes, System.Reflection.CallingConventions callingConvention, System.Type returnType, System.Type[] parameterTypes);
	public MethodBuilder DefineMethod (string name, System.Reflection.MethodAttributes attributes, System.Reflection.CallingConventions callingConvention, System.Type returnType, System.Type[] returnTypeRequiredCustomModifiers, System.Type[] returnTypeOptionalCustomModifiers, System.Type[] parameterTypes, System.Type[][] parameterTypeRequiredCustomModifiers, System.Type[][] parameterTypeOptionalCustomModifiers);
	public void DefineMethodOverride (System.Reflection.MethodInfo methodInfoBody, System.Reflection.MethodInfo methodInfoDeclaration);
	public TypeBuilder DefineNestedType (string name);
	public TypeBuilder DefineNestedType (string name, System.Reflection.TypeAttributes attr);
	public TypeBuilder DefineNestedType (string name, System.Reflection.TypeAttributes attr, System.Type parent);
	public TypeBuilder DefineNestedType (string name, System.Reflection.TypeAttributes attr, System.Type parent, int typeSize);
	public TypeBuilder DefineNestedType (string name, System.Reflection.TypeAttributes attr, System.Type parent, PackingSize packSize);
	public TypeBuilder DefineNestedType (string name, System.Reflection.TypeAttributes attr, System.Type parent, System.Type[] interfaces);
	public TypeBuilder DefineNestedType (string name, System.Reflection.TypeAttributes attr, System.Type parent, PackingSize packSize, int typeSize);
	public PropertyBuilder DefineProperty (string name, System.Reflection.PropertyAttributes attributes, System.Type returnType, System.Type[] parameterTypes);
	public PropertyBuilder DefineProperty (string name, System.Reflection.PropertyAttributes attributes, System.Reflection.CallingConventions callingConvention, System.Type returnType, System.Type[] parameterTypes);
	public PropertyBuilder DefineProperty (string name, System.Reflection.PropertyAttributes attributes, System.Type returnType, System.Type[] returnTypeRequiredCustomModifiers, System.Type[] returnTypeOptionalCustomModifiers, System.Type[] parameterTypes, System.Type[][] parameterTypeRequiredCustomModifiers, System.Type[][] parameterTypeOptionalCustomModifiers);
	public PropertyBuilder DefineProperty (string name, System.Reflection.PropertyAttributes attributes, System.Reflection.CallingConventions callingConvention, System.Type returnType, System.Type[] returnTypeRequiredCustomModifiers, System.Type[] returnTypeOptionalCustomModifiers, System.Type[] parameterTypes, System.Type[][] parameterTypeRequiredCustomModifiers, System.Type[][] parameterTypeOptionalCustomModifiers);
	public ConstructorBuilder DefineTypeInitializer ();
	public FieldBuilder DefineUninitializedData (string name, int size, System.Reflection.FieldAttributes attributes);
	public static System.Reflection.ConstructorInfo GetConstructor (System.Type type, System.Reflection.ConstructorInfo constructor);
	public override System.Type GetElementType ();
	public static System.Reflection.FieldInfo GetField (System.Type type, System.Reflection.FieldInfo field);
	public static System.Reflection.MethodInfo GetMethod (System.Type type, System.Reflection.MethodInfo method);
	public bool IsCreated ();
	public void SetCustomAttribute (CustomAttributeBuilder customBuilder);
	public void SetCustomAttribute (System.Reflection.ConstructorInfo con, byte[] binaryAttribute);
	public void SetParent (System.Type parent);
}

Namespace System.Runtime

Type Changed: System.Runtime.GCLatencyMode

Added value:

	NoGCRegion = 4,

Namespace System.Runtime.CompilerServices

New Type System.Runtime.CompilerServices.IDispatchConstantAttribute

[Serializable]
public sealed class IDispatchConstantAttribute : System.Runtime.CompilerServices.CustomConstantAttribute {
	// constructors
	public IDispatchConstantAttribute ();
	// properties
	public override object Value { get; }
}

Namespace System.Runtime.InteropServices

Type Changed: System.Runtime.InteropServices.Marshal

Added methods:

	public static IntPtr BufferToBSTR (System.Array ptr, int slen);
	public static void CleanupUnusedObjectsInCurrentContext ();

Type Changed: System.Runtime.InteropServices.RuntimeEnvironment

Added methods:

	public static IntPtr GetRuntimeInterfaceAsIntPtr (System.Guid clsid, System.Guid riid);
	public static object GetRuntimeInterfaceAsObject (System.Guid clsid, System.Guid riid);

Removed Type System.Runtime.InteropServices.ComAwareEventInfo

Namespace System.Runtime.Serialization.Formatters.Binary

Type Changed: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter

Added interface:

	System.Runtime.Remoting.Messaging.IRemotingFormatter

Namespace System.Security

Type Changed: System.Security.SecurityCriticalAttribute

Added constructor:

	public SecurityCriticalAttribute (SecurityCriticalScope scope);

Added property:

	[Obsolete ("SecurityCriticalScope is only used for .NET 2.0 transparency compatibility.")]
	public SecurityCriticalScope Scope { get; }

Namespace System.Security.Cryptography

Type Changed: System.Security.Cryptography.CryptoConfig

Added methods:

	public static void AddAlgorithm (System.Type algorithm, string[] names);
	public static void AddOID (string oid, string[] names);

Type Changed: System.Security.Cryptography.DSA

Added methods:

	protected virtual byte[] HashData (System.IO.Stream data, HashAlgorithmName hashAlgorithm);
	protected virtual byte[] HashData (byte[] data, int offset, int count, HashAlgorithmName hashAlgorithm);
	public byte[] SignData (byte[] data, HashAlgorithmName hashAlgorithm);
	public virtual byte[] SignData (System.IO.Stream data, HashAlgorithmName hashAlgorithm);
	public virtual byte[] SignData (byte[] data, int offset, int count, HashAlgorithmName hashAlgorithm);
	public bool VerifyData (byte[] data, byte[] signature, HashAlgorithmName hashAlgorithm);
	public virtual bool VerifyData (System.IO.Stream data, byte[] signature, HashAlgorithmName hashAlgorithm);
	public virtual bool VerifyData (byte[] data, int offset, int count, byte[] signature, HashAlgorithmName hashAlgorithm);

Type Changed: System.Security.Cryptography.RC2CryptoServiceProvider

Added property:

	public bool UseSalt { get; set; }

Type Changed: System.Security.Cryptography.RNGCryptoServiceProvider

Added constructors:

	public RNGCryptoServiceProvider (byte[] rgb);
	public RNGCryptoServiceProvider (CspParameters cspParams);
	public RNGCryptoServiceProvider (string str);

Type Changed: System.Security.Cryptography.RSACryptoServiceProvider

Added methods:

	public override byte[] Decrypt (byte[] data, RSAEncryptionPadding padding);
	public override byte[] Encrypt (byte[] data, RSAEncryptionPadding padding);
	protected override byte[] HashData (System.IO.Stream data, HashAlgorithmName hashAlgorithm);
	protected override byte[] HashData (byte[] data, int offset, int count, HashAlgorithmName hashAlgorithm);
	public override byte[] SignHash (byte[] hash, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding);
	public override bool VerifyHash (byte[] hash, byte[] signature, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding);

Type Changed: System.Security.Cryptography.Rfc2898DeriveBytes

Added method:

	public byte[] CryptDeriveKey (string algname, string alghashname, int keySize, byte[] rgbIV);

New Type System.Security.Cryptography.IncrementalHash

public sealed class IncrementalHash : System.IDisposable {
	// properties
	public HashAlgorithmName AlgorithmName { get; }
	// methods
	public void AppendData (byte[] data);
	public void AppendData (byte[] data, int offset, int count);
	public static IncrementalHash CreateHMAC (HashAlgorithmName hashAlgorithm, byte[] key);
	public static IncrementalHash CreateHash (HashAlgorithmName hashAlgorithm);
	public virtual void Dispose ();
	public byte[] GetHashAndReset ();
}

Namespace System.Threading

Type Changed: System.Threading.EventWaitHandle

Removed method:

	protected override void Dispose (bool explicitDisposing);

Added method:

	public System.Security.AccessControl.EventWaitHandleSecurity GetAccessControl ();

Type Changed: System.Threading.Thread

Added method:

	public void DisableComObjectEagerCleanup ();

Type Changed: System.Threading.ThreadAbortException

Added property:

	public object ExceptionState { get; }


System.dll

Hide non-breaking changes

Namespace Microsoft.Win32.SafeHandles

Type Changed: Microsoft.Win32.SafeHandles.SafeX509ChainHandle

Modified base type: System.Runtime.InteropServices.SafeHandle Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid

Removed property:

	public override bool IsInvalid { get; }

Namespace System.Diagnostics

Type Changed: System.Diagnostics.ProcessModuleCollection

Modified base type: System.Diagnostics.ProcessModuleCollectionBase System.Collections.ReadOnlyCollectionBase

Removed interfaces:

	System.Collections.Generic.ICollection<T>
	System.Collections.Generic.IEnumerable<T>
	System.Collections.Generic.IList<T>
	System.Collections.Generic.IReadOnlyCollection<T>
	System.Collections.Generic.IReadOnlyList<T>
	System.Collections.IList

Added property:

	[Obsolete ("This API is no longer available")]
	public int Capacity { get; set; }

Added methods:

	[Obsolete ("This API is no longer available")]
	public void Add (ProcessModule item);

	[Obsolete ("This API is no longer available")]
	public void AddRange (System.Collections.Generic.IEnumerable<ProcessModule> collection);

	[Obsolete ("This API is no longer available")]
	public System.Collections.ObjectModel.ReadOnlyCollection<ProcessModule> AsReadOnly ();

	[Obsolete ("This API is no longer available")]
	public int BinarySearch (ProcessModule item);

	[Obsolete ("This API is no longer available")]
	public int BinarySearch (ProcessModule item, System.Collections.Generic.IComparer<ProcessModule> comparer);

	[Obsolete ("This API is no longer available")]
	public int BinarySearch (int index, int count, ProcessModule item, System.Collections.Generic.IComparer<ProcessModule> comparer);

	[Obsolete ("This API is no longer available")]
	public void Clear ();

	[Obsolete ("This API is no longer available")]
	public System.Collections.Generic.List<TOutput> ConvertAll<TOutput> (System.Converter<ProcessModule,TOutput> converter);

	[Obsolete ("This API is no longer available")]
	public void CopyTo (ProcessModule[] array);

	[Obsolete ("This API is no longer available")]
	public void CopyTo (int index, ProcessModule[] array, int arrayIndex, int count);

	[Obsolete ("This API is no longer available")]
	public bool Exists (System.Predicate<ProcessModule> match);

	[Obsolete ("This API is no longer available")]
	public ProcessModule Find (System.Predicate<ProcessModule> match);

	[Obsolete ("This API is no longer available")]
	public System.Collections.Generic.List<ProcessModule> FindAll (System.Predicate<ProcessModule> match);

	[Obsolete ("This API is no longer available")]
	public int FindIndex (System.Predicate<ProcessModule> match);

	[Obsolete ("This API is no longer available")]
	public int FindIndex (int startIndex, System.Predicate<ProcessModule> match);

	[Obsolete ("This API is no longer available")]
	public int FindIndex (int startIndex, int count, System.Predicate<ProcessModule> match);

	[Obsolete ("This API is no longer available")]
	public ProcessModule FindLast (System.Predicate<ProcessModule> match);

	[Obsolete ("This API is no longer available")]
	public int FindLastIndex (System.Predicate<ProcessModule> match);

	[Obsolete ("This API is no longer available")]
	public int FindLastIndex (int startIndex, System.Predicate<ProcessModule> match);

	[Obsolete ("This API is no longer available")]
	public int FindLastIndex (int startIndex, int count, System.Predicate<ProcessModule> match);

	[Obsolete ("This API is no longer available")]
	public void ForEach (System.Action<ProcessModule> action);

	[Obsolete ("This API is no longer available")]
	public System.Collections.Generic.List<ProcessModule> GetRange (int index, int count);

	[Obsolete ("This API is no longer available")]
	public int IndexOf (ProcessModule item, int index);

	[Obsolete ("This API is no longer available")]
	public int IndexOf (ProcessModule item, int index, int count);

	[Obsolete ("This API is no longer available")]
	public void Insert (int index, ProcessModule item);

	[Obsolete ("This API is no longer available")]
	public void InsertRange (int index, System.Collections.Generic.IEnumerable<ProcessModule> collection);

	[Obsolete ("This API is no longer available")]
	public int LastIndexOf (ProcessModule item);

	[Obsolete ("This API is no longer available")]
	public int LastIndexOf (ProcessModule item, int index);

	[Obsolete ("This API is no longer available")]
	public int LastIndexOf (ProcessModule item, int index, int count);

	[Obsolete ("This API is no longer available")]
	public bool Remove (ProcessModule item);

	[Obsolete ("This API is no longer available")]
	public int RemoveAll (System.Predicate<ProcessModule> match);

	[Obsolete ("This API is no longer available")]
	public void RemoveAt (int index);

	[Obsolete ("This API is no longer available")]
	public void RemoveRange (int index, int count);

	[Obsolete ("This API is no longer available")]
	public void Reverse ();

	[Obsolete ("This API is no longer available")]
	public void Reverse (int index, int count);

	[Obsolete ("This API is no longer available")]
	public void Sort ();

	[Obsolete ("This API is no longer available")]
	public void Sort (System.Collections.Generic.IComparer<ProcessModule> comparer);

	[Obsolete ("This API is no longer available")]
	public void Sort (System.Comparison<ProcessModule> comparison);

	[Obsolete ("This API is no longer available")]
	public void Sort (int index, int count, System.Collections.Generic.IComparer<ProcessModule> comparer);

	[Obsolete ("This API is no longer available")]
	public ProcessModule[] ToArray ();

	[Obsolete ("This API is no longer available")]
	public void TrimExcess ();

	[Obsolete ("This API is no longer available")]
	public bool TrueForAll (System.Predicate<ProcessModule> match);

Type Changed: System.Diagnostics.ProcessThreadCollection

Modified base type: System.Diagnostics.ProcessThreadCollectionBase System.Collections.ReadOnlyCollectionBase

Removed interfaces:

	System.Collections.Generic.ICollection<T>
	System.Collections.Generic.IEnumerable<T>
	System.Collections.Generic.IList<T>
	System.Collections.Generic.IReadOnlyCollection<T>
	System.Collections.Generic.IReadOnlyList<T>
	System.Collections.IList

Added property:

	[Obsolete ("This API is no longer available")]
	public int Capacity { get; set; }

Added methods:

	[Obsolete ("This API is no longer available")]
	public void AddRange (System.Collections.Generic.IEnumerable<ProcessThread> collection);

	[Obsolete ("This API is no longer available")]
	public System.Collections.ObjectModel.ReadOnlyCollection<ProcessThread> AsReadOnly ();

	[Obsolete ("This API is no longer available")]
	public int BinarySearch (ProcessThread item);

	[Obsolete ("This API is no longer available")]
	public int BinarySearch (ProcessThread item, System.Collections.Generic.IComparer<ProcessThread> comparer);

	[Obsolete ("This API is no longer available")]
	public int BinarySearch (int index, int count, ProcessThread item, System.Collections.Generic.IComparer<ProcessThread> comparer);

	[Obsolete ("This API is no longer available")]
	public void Clear ();

	[Obsolete ("This API is no longer available")]
	public System.Collections.Generic.List<TOutput> ConvertAll<TOutput> (System.Converter<ProcessThread,TOutput> converter);

	[Obsolete ("This API is no longer available")]
	public void CopyTo (ProcessThread[] array);

	[Obsolete ("This API is no longer available")]
	public void CopyTo (int index, ProcessThread[] array, int arrayIndex, int count);

	[Obsolete ("This API is no longer available")]
	public bool Exists (System.Predicate<ProcessThread> match);

	[Obsolete ("This API is no longer available")]
	public ProcessThread Find (System.Predicate<ProcessThread> match);

	[Obsolete ("This API is no longer available")]
	public System.Collections.Generic.List<ProcessThread> FindAll (System.Predicate<ProcessThread> match);

	[Obsolete ("This API is no longer available")]
	public int FindIndex (System.Predicate<ProcessThread> match);

	[Obsolete ("This API is no longer available")]
	public int FindIndex (int startIndex, System.Predicate<ProcessThread> match);

	[Obsolete ("This API is no longer available")]
	public int FindIndex (int startIndex, int count, System.Predicate<ProcessThread> match);

	[Obsolete ("This API is no longer available")]
	public ProcessThread FindLast (System.Predicate<ProcessThread> match);

	[Obsolete ("This API is no longer available")]
	public int FindLastIndex (System.Predicate<ProcessThread> match);

	[Obsolete ("This API is no longer available")]
	public int FindLastIndex (int startIndex, System.Predicate<ProcessThread> match);

	[Obsolete ("This API is no longer available")]
	public int FindLastIndex (int startIndex, int count, System.Predicate<ProcessThread> match);

	[Obsolete ("This API is no longer available")]
	public void ForEach (System.Action<ProcessThread> action);

	[Obsolete ("This API is no longer available")]
	public System.Collections.Generic.List<ProcessThread> GetRange (int index, int count);

	[Obsolete ("This API is no longer available")]
	public int IndexOf (ProcessThread item, int index);

	[Obsolete ("This API is no longer available")]
	public int IndexOf (ProcessThread item, int index, int count);

	[Obsolete ("This API is no longer available")]
	public void InsertRange (int index, System.Collections.Generic.IEnumerable<ProcessThread> collection);

	[Obsolete ("This API is no longer available")]
	public int LastIndexOf (ProcessThread item);

	[Obsolete ("This API is no longer available")]
	public int LastIndexOf (ProcessThread item, int index);

	[Obsolete ("This API is no longer available")]
	public int LastIndexOf (ProcessThread item, int index, int count);

	[Obsolete ("This API is no longer available")]
	public int RemoveAll (System.Predicate<ProcessThread> match);

	[Obsolete ("This API is no longer available")]
	public void RemoveAt (int index);

	[Obsolete ("This API is no longer available")]
	public void RemoveRange (int index, int count);

	[Obsolete ("This API is no longer available")]
	public void Reverse ();

	[Obsolete ("This API is no longer available")]
	public void Reverse (int index, int count);

	[Obsolete ("This API is no longer available")]
	public void Sort ();

	[Obsolete ("This API is no longer available")]
	public void Sort (System.Collections.Generic.IComparer<ProcessThread> comparer);

	[Obsolete ("This API is no longer available")]
	public void Sort (System.Comparison<ProcessThread> comparison);

	[Obsolete ("This API is no longer available")]
	public void Sort (int index, int count, System.Collections.Generic.IComparer<ProcessThread> comparer);

	[Obsolete ("This API is no longer available")]
	public ProcessThread[] ToArray ();

	[Obsolete ("This API is no longer available")]
	public void TrimExcess ();

	[Obsolete ("This API is no longer available")]
	public bool TrueForAll (System.Predicate<ProcessThread> match);

Removed Type System.Diagnostics.ProcessModuleCollectionBase

Removed Type System.Diagnostics.ProcessThreadCollectionBase

Namespace System.IO

Type Changed: System.IO.FileSystemWatcher

Modified base type: System.Object System.ComponentModel.Component

Added interfaces:

	System.ComponentModel.IComponent
	System.ComponentModel.ISupportInitialize

Added properties:

	public override System.ComponentModel.ISite Site { get; set; }
	public System.ComponentModel.ISynchronizeInvoke SynchronizingObject { get; set; }

Modified methods:

protected virtual override void Dispose (bool disposing)

Added methods:

	public virtual void BeginInit ();
	public virtual void EndInit ();

New Type System.IO.IODescriptionAttribute

public class IODescriptionAttribute : System.ComponentModel.DescriptionAttribute {
	// constructors
	public IODescriptionAttribute (string description);
	// properties
	public override string Description { get; }
}

Namespace System.Net

Type Changed: System.Net.HttpListener

Added properties:

	public System.Security.Authentication.ExtendedProtection.ServiceNameCollection DefaultServiceNames { get; }
	public System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy ExtendedProtectionPolicy { get; set; }
	public HttpListener.ExtendedProtectionSelector ExtendedProtectionSelectorDelegate { get; set; }
	public HttpListenerTimeoutManager TimeoutManager { get; }

Type Changed: System.Net.HttpListenerContext

Added method:

	public System.Threading.Tasks.Task<WebSockets.HttpListenerWebSocketContext> AcceptWebSocketAsync (string subProtocol, System.TimeSpan keepAliveInterval);

Type Changed: System.Net.HttpListenerTimeoutManager

Added properties:

	public System.TimeSpan DrainEntityBody { get; set; }
	public System.TimeSpan EntityBody { get; set; }
	public System.TimeSpan HeaderWait { get; set; }
	public System.TimeSpan IdleConnection { get; set; }
	public long MinSendBytesPerSecond { get; set; }
	public System.TimeSpan RequestQueue { get; set; }

Type Changed: System.Net.HttpWebRequest

Modified properties:

public virtual bool AllowAutoRedirect { get; set; }
public virtual bool AllowWriteStreamBuffering { get; set; }

Added method:

	public System.IO.Stream GetRequestStream (TransportContext context);

Type Changed: System.Net.ServicePointManager

Added properties:

	public static Security.EncryptionPolicy EncryptionPolicy { get; }
	public static bool ReusePort { get; set; }

Type Changed: System.Net.WebProxy

Modified constructors:

public WebProxy (string address Address)
public WebProxy (System.Uri address Address)
public WebProxy (string address Address, bool bypassOnLocal BypassOnLocal)
public WebProxy (string host Host, int port Port)
public WebProxy (System.Uri address Address, bool bypassOnLocal BypassOnLocal)
public WebProxy (string address Address, bool bypassOnLocal BypassOnLocal, string[] bypassList BypassList)
public WebProxy (System.Uri address Address, bool bypassOnLocal BypassOnLocal, string[] bypassList BypassList)
public WebProxy (string address Address, bool bypassOnLocal BypassOnLocal, string[] bypassList BypassList, ICredentials credentials Credentials)
public WebProxy (System.Uri address Address, bool bypassOnLocal BypassOnLocal, string[] bypassList BypassList, ICredentials credentials Credentials)

Added method:

	public static IWebProxy CreateDefaultProxy ();

Type Changed: System.Net.WebRequest

Added property:

	[Obsolete ("This API supports the .NET Framework infrastructure and is not intended to be used directly from your code.")]
	public virtual IWebRequestCreate CreatorInstance { get; }

Added method:

	[Obsolete ("This API supports the .NET Framework infrastructure and is not intended to be used directly from your code.")]
	public static void RegisterPortableWebRequestCreator (IWebRequestCreate creator);

Namespace System.Net.Mail

Type Changed: System.Net.Mail.MailMessage

Added property:

	public System.Net.Mime.TransferEncoding BodyTransferEncoding { get; set; }

Type Changed: System.Net.Mail.SmtpClient

Added property:

	public SmtpDeliveryFormat DeliveryFormat { get; set; }

Namespace System.Net.Security

Type Changed: System.Net.Security.NegotiateStream

Added methods:

	public virtual void AuthenticateAsClient (System.Net.NetworkCredential credential, System.Security.Authentication.ExtendedProtection.ChannelBinding binding, string targetName);
	public virtual void AuthenticateAsClient (System.Net.NetworkCredential credential, System.Security.Authentication.ExtendedProtection.ChannelBinding binding, string targetName, ProtectionLevel requiredProtectionLevel, System.Security.Principal.TokenImpersonationLevel allowedImpersonationLevel);
	public virtual void AuthenticateAsServer (System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy policy);
	public virtual void AuthenticateAsServer (System.Net.NetworkCredential credential, System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy policy, ProtectionLevel requiredProtectionLevel, System.Security.Principal.TokenImpersonationLevel requiredImpersonationLevel);
	public virtual System.IAsyncResult BeginAuthenticateAsClient (System.Net.NetworkCredential credential, System.Security.Authentication.ExtendedProtection.ChannelBinding binding, string targetName, System.AsyncCallback asyncCallback, object asyncState);
	public virtual System.IAsyncResult BeginAuthenticateAsClient (System.Net.NetworkCredential credential, System.Security.Authentication.ExtendedProtection.ChannelBinding binding, string targetName, ProtectionLevel requiredProtectionLevel, System.Security.Principal.TokenImpersonationLevel allowedImpersonationLevel, System.AsyncCallback asyncCallback, object asyncState);
	public virtual System.IAsyncResult BeginAuthenticateAsServer (System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy policy, System.AsyncCallback asyncCallback, object asyncState);
	public virtual System.IAsyncResult BeginAuthenticateAsServer (System.Net.NetworkCredential credential, System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy policy, ProtectionLevel requiredProtectionLevel, System.Security.Principal.TokenImpersonationLevel requiredImpersonationLevel, System.AsyncCallback asyncCallback, object asyncState);

Type Changed: System.Net.Security.SslStream

Modified properties:

public virtual final System.Net.TransportContext TransportContext { get; }

Modified methods:

public virtual final void Write (byte[] buffer)

Namespace System.Net.Sockets

Type Changed: System.Net.Sockets.Socket

Added constructor:

	public Socket (SocketInformation socketInformation);

Added methods:

	public SocketInformation DuplicateAndClose (int targetProcessId);
	public void SetIPProtectionLevel (IPProtectionLevel level);

Type Changed: System.Net.Sockets.SocketAsyncEventArgs

Added property:

	public TransmitFileOptions SendPacketsFlags { get; set; }

Type Changed: System.Net.Sockets.TcpListener

Added methods:

	public void AllowNatTraversal (bool allowed);
	public static TcpListener Create (int port);

Type Changed: System.Net.Sockets.UdpClient

Added method:

	public void AllowNatTraversal (bool allowed);

New Type System.Net.Sockets.SocketReceiveFromResult

public struct SocketReceiveFromResult {
	// fields
	public int ReceivedBytes;
	public System.Net.EndPoint RemoteEndPoint;
}

New Type System.Net.Sockets.SocketReceiveMessageFromResult

public struct SocketReceiveMessageFromResult {
	// fields
	public IPPacketInformation PacketInformation;
	public int ReceivedBytes;
	public System.Net.EndPoint RemoteEndPoint;
	public SocketFlags SocketFlags;
}

New Type System.Net.Sockets.SocketTaskExtensions

public static class SocketTaskExtensions {
	// methods
	public static System.Threading.Tasks.Task<Socket> AcceptAsync (Socket socket);
	public static System.Threading.Tasks.Task<Socket> AcceptAsync (Socket socket, Socket acceptSocket);
	public static System.Threading.Tasks.Task ConnectAsync (Socket socket, System.Net.EndPoint remoteEP);
	public static System.Threading.Tasks.Task ConnectAsync (Socket socket, System.Net.IPAddress address, int port);
	public static System.Threading.Tasks.Task ConnectAsync (Socket socket, System.Net.IPAddress[] addresses, int port);
	public static System.Threading.Tasks.Task ConnectAsync (Socket socket, string host, int port);
	public static System.Threading.Tasks.Task<int> ReceiveAsync (Socket socket, System.ArraySegment<byte> buffer, SocketFlags socketFlags);
	public static System.Threading.Tasks.Task<int> ReceiveAsync (Socket socket, System.Collections.Generic.IList<System.ArraySegment<byte>> buffers, SocketFlags socketFlags);
	public static System.Threading.Tasks.Task<SocketReceiveFromResult> ReceiveFromAsync (Socket socket, System.ArraySegment<byte> buffer, SocketFlags socketFlags, System.Net.EndPoint remoteEndPoint);
	public static System.Threading.Tasks.Task<SocketReceiveMessageFromResult> ReceiveMessageFromAsync (Socket socket, System.ArraySegment<byte> buffer, SocketFlags socketFlags, System.Net.EndPoint remoteEndPoint);
	public static System.Threading.Tasks.Task<int> SendAsync (Socket socket, System.ArraySegment<byte> buffer, SocketFlags socketFlags);
	public static System.Threading.Tasks.Task<int> SendAsync (Socket socket, System.Collections.Generic.IList<System.ArraySegment<byte>> buffers, SocketFlags socketFlags);
	public static System.Threading.Tasks.Task<int> SendToAsync (Socket socket, System.ArraySegment<byte> buffer, SocketFlags socketFlags, System.Net.EndPoint remoteEP);
}

Namespace System.Security.Cryptography.X509Certificates

Type Changed: System.Security.Cryptography.X509Certificates.X509Certificate2

Added constructor:

	protected X509Certificate2 (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);

Namespace System.Text.RegularExpressions

Type Changed: System.Text.RegularExpressions.Regex

Added method:

	protected bool UseOptionC ();

Removed Namespace Mono.Security.Interface

Removed Type Mono.Security.Interface.Alert

Removed Type Mono.Security.Interface.AlertDescription

Removed Type Mono.Security.Interface.AlertLevel

Removed Type Mono.Security.Interface.CertificateValidationHelper

Removed Type Mono.Security.Interface.CipherAlgorithmType

Removed Type Mono.Security.Interface.CipherSuiteCode

Removed Type Mono.Security.Interface.ExchangeAlgorithmType

Removed Type Mono.Security.Interface.HashAlgorithmType

Removed Type Mono.Security.Interface.IBufferOffsetSize

Removed Type Mono.Security.Interface.ICertificateValidator

Removed Type Mono.Security.Interface.IMonoSslStream

Removed Type Mono.Security.Interface.IMonoTlsEventSink

Removed Type Mono.Security.Interface.MonoEncryptionPolicy

Removed Type Mono.Security.Interface.MonoLocalCertificateSelectionCallback

Removed Type Mono.Security.Interface.MonoRemoteCertificateValidationCallback

Removed Type Mono.Security.Interface.MonoSslPolicyErrors

Removed Type Mono.Security.Interface.MonoTlsConnectionInfo

Removed Type Mono.Security.Interface.MonoTlsProvider

Removed Type Mono.Security.Interface.MonoTlsProviderFactory

Removed Type Mono.Security.Interface.MonoTlsSettings

Removed Type Mono.Security.Interface.TlsException

Removed Type Mono.Security.Interface.TlsProtocolCode

Removed Type Mono.Security.Interface.TlsProtocols

Removed Type Mono.Security.Interface.ValidationResult

Removed Namespace Mono.Security.Protocol.Ntlm

Removed Type Mono.Security.Protocol.Ntlm.ChallengeResponse

Removed Type Mono.Security.Protocol.Ntlm.ChallengeResponse2

Removed Type Mono.Security.Protocol.Ntlm.MessageBase

Removed Type Mono.Security.Protocol.Ntlm.NtlmAuthLevel

Removed Type Mono.Security.Protocol.Ntlm.NtlmFlags

Removed Type Mono.Security.Protocol.Ntlm.NtlmSettings

Removed Type Mono.Security.Protocol.Ntlm.Type1Message

Removed Type Mono.Security.Protocol.Ntlm.Type2Message

Removed Type Mono.Security.Protocol.Ntlm.Type3Message

New Namespace System.Diagnostics.CodeAnalysis

New Type System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute

public sealed class ExcludeFromCodeCoverageAttribute : System.Attribute {
	// constructors
	public ExcludeFromCodeCoverageAttribute ();
}

New Namespace System.Windows.Markup

New Type System.Windows.Markup.ValueSerializerAttribute

public sealed class ValueSerializerAttribute : System.Attribute {
	// constructors
	public ValueSerializerAttribute (string valueSerializerTypeName);
	public ValueSerializerAttribute (System.Type valueSerializerType);
	// properties
	public System.Type ValueSerializerType { get; }
	public string ValueSerializerTypeName { get; }
}


System.Core.dll

Hide non-breaking changes

Namespace Microsoft.Win32.SafeHandles

Type Changed: Microsoft.Win32.SafeHandles.SafeNCryptHandle

Modified base type: System.Runtime.InteropServices.SafeHandle Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid

Namespace System.IO.Pipes

Type Changed: System.IO.Pipes.AnonymousPipeServerStream

Added constructor:

	public AnonymousPipeServerStream (PipeDirection direction, System.IO.HandleInheritability inheritability, int bufferSize, PipeSecurity pipeSecurity);

Type Changed: System.IO.Pipes.NamedPipeClientStream

Added constructor:

	public NamedPipeClientStream (string serverName, string pipeName, PipeAccessRights desiredAccessRights, PipeOptions options, System.Security.Principal.TokenImpersonationLevel impersonationLevel, System.IO.HandleInheritability inheritability);

Added method:

	protected override void CheckPipePropertyOperations ();

Type Changed: System.IO.Pipes.NamedPipeServerStream

Added constructors:

	public NamedPipeServerStream (string pipeName, PipeDirection direction, int maxNumberOfServerInstances, PipeTransmissionMode transmissionMode, PipeOptions options, int inBufferSize, int outBufferSize, PipeSecurity pipeSecurity);
	public NamedPipeServerStream (string pipeName, PipeDirection direction, int maxNumberOfServerInstances, PipeTransmissionMode transmissionMode, PipeOptions options, int inBufferSize, int outBufferSize, PipeSecurity pipeSecurity, System.IO.HandleInheritability inheritability);
	public NamedPipeServerStream (string pipeName, PipeDirection direction, int maxNumberOfServerInstances, PipeTransmissionMode transmissionMode, PipeOptions options, int inBufferSize, int outBufferSize, PipeSecurity pipeSecurity, System.IO.HandleInheritability inheritability, PipeAccessRights additionalAccessRights);

Added methods:

	public System.IAsyncResult BeginWaitForConnection (System.AsyncCallback callback, object state);
	public void EndWaitForConnection (System.IAsyncResult asyncResult);
	public void RunAsClient (PipeStreamImpersonationWorker impersonationWorker);

Type Changed: System.IO.Pipes.PipeStream

Added property:

	protected bool IsHandleExposed { get; }

Added methods:

	public override System.IAsyncResult BeginRead (byte[] buffer, int offset, int count, System.AsyncCallback callback, object state);
	public override System.IAsyncResult BeginWrite (byte[] buffer, int offset, int count, System.AsyncCallback callback, object state);
	protected virtual void CheckPipePropertyOperations ();
	protected void CheckReadOperations ();
	protected void CheckWriteOperations ();
	public override int EndRead (System.IAsyncResult asyncResult);
	public override void EndWrite (System.IAsyncResult asyncResult);
	public PipeSecurity GetAccessControl ();
	protected void InitializeHandle (Microsoft.Win32.SafeHandles.SafePipeHandle handle, bool isExposed, bool isAsync);
	public void SetAccessControl (PipeSecurity pipeSecurity);

Namespace System.Runtime.CompilerServices

Type Changed: System.Runtime.CompilerServices.DebugInfoGenerator

Added method:

	public static DebugInfoGenerator CreatePdbGenerator ();

Namespace System.Security.Cryptography

Type Changed: System.Security.Cryptography.ECDiffieHellmanPublicKey

Modified methods:

public abstract virtual string ToXmlString ()

Removed Type System.Security.Cryptography.IncrementalHash

New Namespace System.Runtime.InteropServices

New Type System.Runtime.InteropServices.ComAwareEventInfo

public class ComAwareEventInfo : System.Reflection.EventInfo, System.Reflection.ICustomAttributeProvider, _MemberInfo {
	// constructors
	public ComAwareEventInfo (System.Type type, string eventName);
	// properties
	public override System.Reflection.EventAttributes Attributes { get; }
	public override System.Type DeclaringType { get; }
	public override string Name { get; }
	public override System.Type ReflectedType { get; }
	// methods
	public override void AddEventHandler (object target, System.Delegate handler);
	public override System.Reflection.MethodInfo GetAddMethod (bool nonPublic);
	public override object[] GetCustomAttributes (bool inherit);
	public override object[] GetCustomAttributes (System.Type attributeType, bool inherit);
	public override System.Reflection.MethodInfo GetRaiseMethod (bool nonPublic);
	public override System.Reflection.MethodInfo GetRemoveMethod (bool nonPublic);
	public override bool IsDefined (System.Type attributeType, bool inherit);
	public override void RemoveEventHandler (object target, System.Delegate handler);
}


System.Data.dll

Hide non-breaking changes

Namespace System.Data.SqlClient

Type Changed: System.Data.SqlClient.SqlConnectionStringBuilder

Added property:

	public PoolBlockingPeriod PoolBlockingPeriod { get; set; }

New Type System.Data.SqlClient.PoolBlockingPeriod

[Serializable]
public enum PoolBlockingPeriod {
	AlwaysBlock = 1,
	Auto = 0,
	NeverBlock = 2,
}


System.Runtime.Serialization.dll

Hide non-breaking changes

Namespace System.Runtime.Serialization

Type Changed: System.Runtime.Serialization.XmlSerializableServices

Added method:

	public static void AddDefaultSchema (System.Xml.Schema.XmlSchemaSet schemas, System.Xml.XmlQualifiedName typeQName);

New Type System.Runtime.Serialization.XsdDataContractExporter

public class XsdDataContractExporter {
	// constructors
	public XsdDataContractExporter ();
	public XsdDataContractExporter (System.Xml.Schema.XmlSchemaSet schemas);
	// properties
	public ExportOptions Options { get; set; }
	public System.Xml.Schema.XmlSchemaSet Schemas { get; }
	// methods
	public bool CanExport (System.Collections.Generic.ICollection<System.Reflection.Assembly> assemblies);
	public bool CanExport (System.Collections.Generic.ICollection<System.Type> types);
	public bool CanExport (System.Type type);
	public void Export (System.Collections.Generic.ICollection<System.Reflection.Assembly> assemblies);
	public void Export (System.Collections.Generic.ICollection<System.Type> types);
	public void Export (System.Type type);
	public System.Xml.XmlQualifiedName GetRootElementName (System.Type type);
	public System.Xml.Schema.XmlSchemaType GetSchemaType (System.Type type);
	public System.Xml.XmlQualifiedName GetSchemaTypeName (System.Type type);
}


System.Xml.dll

Hide non-breaking changes

Namespace System.Xml.Serialization

Type Changed: System.Xml.Serialization.XmlSerializationReader

Added method:

	protected IXmlSerializable ReadSerializable (IXmlSerializable serializable, bool wrappedAny);

Type Changed: System.Xml.Serialization.XmlSerializer

Added constructor:

	public XmlSerializer (System.Type type, XmlAttributeOverrides overrides, System.Type[] extraTypes, XmlRootAttribute root, string defaultNamespace, string location);

Type Changed: System.Xml.Serialization.XmlSerializerFactory

Added method:

	public XmlSerializer CreateSerializer (System.Type type, XmlAttributeOverrides overrides, System.Type[] extraTypes, XmlRootAttribute root, string defaultNamespace, string location);

Namespace System.Xml.Xsl

Type Changed: System.Xml.Xsl.XslCompiledTransform

Added methods:

	public void Load (System.Type compiledStylesheet);
	public void Load (System.Reflection.MethodInfo executeMethod, byte[] queryData, System.Type[] earlyBoundTypes);
	public void Transform (System.Xml.XPath.IXPathNavigable input, XsltArgumentList arguments, System.Xml.XmlWriter results, System.Xml.XmlResolver documentResolver);


System.Transactions.dll

Hide non-breaking changes

Namespace System.Transactions

Type Changed: System.Transactions.Transaction

Added property:

	public System.Guid PromoterType { get; }

Added methods:

	public bool EnlistPromotableSinglePhase (IPromotableSinglePhaseNotification promotableSinglePhaseNotification, System.Guid promoterType);
	public byte[] GetPromotedToken ();
	public Enlistment PromoteAndEnlistDurable (System.Guid manager, IPromotableSinglePhaseNotification promotableNotification, ISinglePhaseNotification notification, EnlistmentOptions options);
	public void SetDistributedTransactionIdentifier (IPromotableSinglePhaseNotification promotableNotification, System.Guid distributedTransactionIdentifier);

Type Changed: System.Transactions.TransactionCompletedEventHandler

Modified methods:

public virtual System.IAsyncResult BeginInvoke (object o sender, TransactionEventArgs e, System.AsyncCallback callback, object object)
public virtual void Invoke (object o sender, TransactionEventArgs e)

Type Changed: System.Transactions.TransactionException

Modified constructors:

protected public TransactionException ()

Type Changed: System.Transactions.TransactionInDoubtException

Modified constructors:

protected public TransactionInDoubtException ()

Type Changed: System.Transactions.TransactionInterop

Added field:

	public static System.Guid PromoterTypeDtc;

Type Changed: System.Transactions.TransactionManagerCommunicationException

Modified constructors:

protected public TransactionManagerCommunicationException ()

Type Changed: System.Transactions.TransactionPromotionException

Modified constructors:

protected public TransactionPromotionException ()

Type Changed: System.Transactions.TransactionScope

Added constructors:

	public TransactionScope (Transaction transactionToUse, TransactionScopeAsyncFlowOption asyncFlowOption);
	public TransactionScope (Transaction transactionToUse, System.TimeSpan scopeTimeout, TransactionScopeAsyncFlowOption asyncFlowOption);
	public TransactionScope (TransactionScopeOption scopeOption, TransactionOptions transactionOptions, TransactionScopeAsyncFlowOption asyncFlowOption);

Type Changed: System.Transactions.TransactionStartedEventHandler

Modified methods:

public virtual System.IAsyncResult BeginInvoke (object o sender, TransactionEventArgs e, System.AsyncCallback callback, object object)
public virtual void Invoke (object o sender, TransactionEventArgs e)


Xamarin.WatchOS.dll

Hide non-breaking changes

Namespace CoreGraphics

Type Changed: CoreGraphics.CGPoint

Added methods:

	public static System.Drawing.Point op_Explicit (CGPoint point);
	public static System.Drawing.PointF op_Explicit (CGPoint point);
	public static CGPoint op_Implicit (System.Drawing.Point point);
	public static CGPoint op_Implicit (System.Drawing.PointF point);

Type Changed: CoreGraphics.CGRect

Added methods:

	public static System.Drawing.Rectangle op_Explicit (CGRect rect);
	public static System.Drawing.RectangleF op_Explicit (CGRect rect);
	public static CGRect op_Implicit (System.Drawing.Rectangle rect);
	public static CGRect op_Implicit (System.Drawing.RectangleF rect);

Type Changed: CoreGraphics.CGSize

Added methods:

	public static System.Drawing.Size op_Explicit (CGSize size);
	public static System.Drawing.SizeF op_Explicit (CGSize size);
	public static CGSize op_Implicit (System.Drawing.Size size);
	public static CGSize op_Implicit (System.Drawing.SizeF size);

Namespace Foundation

Type Changed: Foundation.NSAttributedString

Added constructors:

	public NSAttributedString (string str, CoreText.CTStringAttributes attributes);
	public NSAttributedString (string str, UIKit.UIStringAttributes attributes);
	public NSAttributedString (string str, UIKit.UIFont font, UIKit.UIColor foregroundColor, UIKit.UIColor backgroundColor, UIKit.UIColor strokeColor, UIKit.NSParagraphStyle paragraphStyle, NSLigatureType ligatures, float kerning, NSUnderlineStyle underlineStyle, float strokeWidth, NSUnderlineStyle strikethroughStyle);

Added property:

	public string Value { get; }

Added methods:

	public NSDictionary GetAttributes (nint location, NSRange effectiveRange);
	public CoreText.CTStringAttributes GetCoreTextAttributes (nint location, NSRange effectiveRange);
	public CoreText.CTStringAttributes GetCoreTextAttributes (nint location, NSRange longestEffectiveRange, NSRange rangeLimit);
	public UIKit.UIStringAttributes GetUIKitAttributes (nint location, NSRange effectiveRange);
	public UIKit.UIStringAttributes GetUIKitAttributes (nint location, NSRange longestEffectiveRange, NSRange rangeLimit);
	public NSAttributedString Substring (nint start, nint len);

Type Changed: Foundation.NSFileHandle

Added methods:

	public void AcceptConnectionInBackground (NSRunLoopMode[] notifyRunLoopModes);
	public void ReadInBackground (NSRunLoopMode[] notifyRunLoopModes);
	public void ReadToEndOfFileInBackground (NSRunLoopMode[] notifyRunLoopModes);
	public void WaitForDataInBackground (NSRunLoopMode[] notifyRunLoopModes);

Type Changed: Foundation.NSMetadataItem

Added properties:

	public NSString ContentType { get; }
	public NSString[] ContentTypeTree { get; }
	public NSString UbiquitousItemContainerDisplayName { get; }
	public bool UbiquitousItemDownloadRequested { get; }
	public bool UbiquitousItemIsExternalDocument { get; }
	public NSUrl UbiquitousItemUrlInLocalContainer { get; }

Type Changed: Foundation.NSPort

Added methods:

	public void RemoveFromRunLoop (NSRunLoop runLoop, NSRunLoopMode runLoopMode);
	public void ScheduleInRunLoop (NSRunLoop runLoop, NSRunLoopMode runLoopMode);

Type Changed: Foundation.NSRunLoop

Modified methods:

public bool RunUntil (NSRunLoopMode mode runLoopMode, NSDate limitDate)

Added method:

	public void Perform (NSRunLoopMode[] modes, System.Action block);

Type Changed: Foundation.NSStream

Added methods:

	protected virtual NSObject GetProperty (NSString key);
	public void Schedule (NSRunLoop aRunLoop, NSRunLoopMode mode);
	protected virtual bool SetProperty (NSObject property, NSString key);
	public void Unschedule (NSRunLoop aRunLoop, NSRunLoopMode mode);

Type Changed: Foundation.NSUrlConnection

Added methods:

	public void Schedule (NSRunLoop aRunLoop, NSRunLoopMode forMode);
	public void Unschedule (NSRunLoop aRunLoop, NSRunLoopMode forMode);

Type Changed: Foundation.NSValue

Added properties:

	public System.Drawing.PointF PointFValue { get; }
	public System.Drawing.RectangleF RectangleFValue { get; }
	public System.Drawing.SizeF SizeFValue { get; }

Added methods:

	public static NSValue FromPointF (System.Drawing.PointF point);
	public static NSValue FromRectangleF (System.Drawing.RectangleF rect);
	public static NSValue FromSizeF (System.Drawing.SizeF size);

New Type Foundation.NSItemDownloadingStatusExtensions

public static class NSItemDownloadingStatusExtensions {
	// methods
	public static NSString GetConstant (NSItemDownloadingStatus self);
	public static NSItemDownloadingStatus GetValue (NSString constant);
}

New Type Foundation.NSRunLoopModeExtensions

public static class NSRunLoopModeExtensions {
	// methods
	public static NSString GetConstant (NSRunLoopMode self);
	public static NSString[] GetConstants (NSRunLoopMode[] self);
	public static NSRunLoopMode GetValue (NSString constant);
}

Namespace ObjCRuntime

Type Changed: ObjCRuntime.Constants

Modified fields:

public const string Version = "10.3.1" "10.4.0";

Type Changed: ObjCRuntime.LinkWithAttribute

Added constructor:

	public LinkWithAttribute ();

Added property:

	public DlsymOption Dlsym { get; set; }

New Type ObjCRuntime.DlsymOption

[Serializable]
public enum DlsymOption {
	Default = 0,
	Disabled = 2,
	Required = 1,
}

Namespace Security

Type Changed: Security.SecRecord

Added constructors:

	public SecRecord (SecCertificate certificate);
	public SecRecord (SecIdentity identity);
	public SecRecord (SecKey key);

Added methods:

	public SecCertificate GetCertificate ();
	public SecIdentity GetIdentity ();
	public SecKey GetKey ();
	public void SetCertificate (SecCertificate cert);
	public void SetIdentity (SecIdentity identity);
	public void SetKey (SecKey key);

Namespace UIKit

Type Changed: UIKit.UIFont

Added method:

	public static UIFont GetPreferredFontForTextStyle (UIFontTextStyle uiFontTextStyle);

Type Changed: UIKit.UIFontDescriptor

Added method:

	public static UIFontDescriptor GetPreferredDescriptorForTextStyle (UIFontTextStyle uiFontTextStyle);

New Type UIKit.UIFontTextStyle

[Serializable]
public enum UIFontTextStyle {
	Body = 1,
	Callout = 9,
	Caption1 = 4,
	Caption2 = 5,
	Footnote = 3,
	Headline = 0,
	Subheadline = 2,
	Title1 = 6,
	Title2 = 7,
	Title3 = 8,
}

New Type UIKit.UIFontTextStyleExtensions

public static class UIFontTextStyleExtensions {
	// methods
	public static Foundation.NSString GetConstant (UIFontTextStyle self);
	public static UIFontTextStyle GetValue (Foundation.NSString constant);
}

Namespace WatchKit

Type Changed: WatchKit.WKInterfaceDevice

Added property:

	public string PreferredContentSizeCategoryString { get; }

New Namespace System.Drawing

New Type System.Drawing.Color

[Serializable]
public struct Color {
	// fields
	public static Color Empty;
	// properties
	public byte A { get; }
	public static Color AliceBlue { get; }
	public static Color AntiqueWhite { get; }
	public static Color Aqua { get; }
	public static Color Aquamarine { get; }
	public static Color Azure { get; }
	public byte B { get; }
	public static Color Beige { get; }
	public static Color Bisque { get; }
	public static Color Black { get; }
	public static Color BlanchedAlmond { get; }
	public static Color Blue { get; }
	public static Color BlueViolet { get; }
	public static Color Brown { get; }
	public static Color BurlyWood { get; }
	public static Color CadetBlue { get; }
	public static Color Chartreuse { get; }
	public static Color Chocolate { get; }
	public static Color Coral { get; }
	public static Color CornflowerBlue { get; }
	public static Color Cornsilk { get; }
	public static Color Crimson { get; }
	public static Color Cyan { get; }
	public static Color DarkBlue { get; }
	public static Color DarkCyan { get; }
	public static Color DarkGoldenrod { get; }
	public static Color DarkGray { get; }
	public static Color DarkGreen { get; }
	public static Color DarkKhaki { get; }
	public static Color DarkMagenta { get; }
	public static Color DarkOliveGreen { get; }
	public static Color DarkOrange { get; }
	public static Color DarkOrchid { get; }
	public static Color DarkRed { get; }
	public static Color DarkSalmon { get; }
	public static Color DarkSeaGreen { get; }
	public static Color DarkSlateBlue { get; }
	public static Color DarkSlateGray { get; }
	public static Color DarkTurquoise { get; }
	public static Color DarkViolet { get; }
	public static Color DeepPink { get; }
	public static Color DeepSkyBlue { get; }
	public static Color DimGray { get; }
	public static Color DodgerBlue { get; }
	public static Color Firebrick { get; }
	public static Color FloralWhite { get; }
	public static Color ForestGreen { get; }
	public static Color Fuchsia { get; }
	public byte G { get; }
	public static Color Gainsboro { get; }
	public static Color GhostWhite { get; }
	public static Color Gold { get; }
	public static Color Goldenrod { get; }
	public static Color Gray { get; }
	public static Color Green { get; }
	public static Color GreenYellow { get; }
	public static Color Honeydew { get; }
	public static Color HotPink { get; }
	public static Color IndianRed { get; }
	public static Color Indigo { get; }
	public bool IsEmpty { get; }
	public bool IsKnownColor { get; }
	public bool IsNamedColor { get; }
	public bool IsSystemColor { get; }
	public static Color Ivory { get; }
	public static Color Khaki { get; }
	public static Color Lavender { get; }
	public static Color LavenderBlush { get; }
	public static Color LawnGreen { get; }
	public static Color LemonChiffon { get; }
	public static Color LightBlue { get; }
	public static Color LightCoral { get; }
	public static Color LightCyan { get; }
	public static Color LightGoldenrodYellow { get; }
	public static Color LightGray { get; }
	public static Color LightGreen { get; }
	public static Color LightPink { get; }
	public static Color LightSalmon { get; }
	public static Color LightSeaGreen { get; }
	public static Color LightSkyBlue { get; }
	public static Color LightSlateGray { get; }
	public static Color LightSteelBlue { get; }
	public static Color LightYellow { get; }
	public static Color Lime { get; }
	public static Color LimeGreen { get; }
	public static Color Linen { get; }
	public static Color Magenta { get; }
	public static Color Maroon { get; }
	public static Color MediumAquamarine { get; }
	public static Color MediumBlue { get; }
	public static Color MediumOrchid { get; }
	public static Color MediumPurple { get; }
	public static Color MediumSeaGreen { get; }
	public static Color MediumSlateBlue { get; }
	public static Color MediumSpringGreen { get; }
	public static Color MediumTurquoise { get; }
	public static Color MediumVioletRed { get; }
	public static Color MidnightBlue { get; }
	public static Color MintCream { get; }
	public static Color MistyRose { get; }
	public static Color Moccasin { get; }
	public string Name { get; }
	public static Color NavajoWhite { get; }
	public static Color Navy { get; }
	public static Color OldLace { get; }
	public static Color Olive { get; }
	public static Color OliveDrab { get; }
	public static Color Orange { get; }
	public static Color OrangeRed { get; }
	public static Color Orchid { get; }
	public static Color PaleGoldenrod { get; }
	public static Color PaleGreen { get; }
	public static Color PaleTurquoise { get; }
	public static Color PaleVioletRed { get; }
	public static Color PapayaWhip { get; }
	public static Color PeachPuff { get; }
	public static Color Peru { get; }
	public static Color Pink { get; }
	public static Color Plum { get; }
	public static Color PowderBlue { get; }
	public static Color Purple { get; }
	public byte R { get; }
	public static Color Red { get; }
	public static Color RosyBrown { get; }
	public static Color RoyalBlue { get; }
	public static Color SaddleBrown { get; }
	public static Color Salmon { get; }
	public static Color SandyBrown { get; }
	public static Color SeaGreen { get; }
	public static Color SeaShell { get; }
	public static Color Sienna { get; }
	public static Color Silver { get; }
	public static Color SkyBlue { get; }
	public static Color SlateBlue { get; }
	public static Color SlateGray { get; }
	public static Color Snow { get; }
	public static Color SpringGreen { get; }
	public static Color SteelBlue { get; }
	public static Color Tan { get; }
	public static Color Teal { get; }
	public static Color Thistle { get; }
	public static Color Tomato { get; }
	public static Color Transparent { get; }
	public static Color Turquoise { get; }
	public static Color Violet { get; }
	public static Color Wheat { get; }
	public static Color White { get; }
	public static Color WhiteSmoke { get; }
	public static Color Yellow { get; }
	public static Color YellowGreen { get; }
	// methods
	public override bool Equals (object obj);
	public static Color FromArgb (int argb);
	public static Color FromArgb (int alpha, Color baseColor);
	public static Color FromArgb (int red, int green, int blue);
	public static Color FromArgb (int alpha, int red, int green, int blue);
	public static Color FromKnownColor (KnownColor color);
	public static Color FromName (string name);
	public float GetBrightness ();
	public override int GetHashCode ();
	public float GetHue ();
	public float GetSaturation ();
	public int ToArgb ();
	public KnownColor ToKnownColor ();
	public override string ToString ();
	public static bool op_Equality (Color left, Color right);
	public static bool op_Inequality (Color left, Color right);
}

New Type System.Drawing.KnownColor

[Serializable]
public enum KnownColor {
	ActiveBorder = 1,
	ActiveCaption = 2,
	ActiveCaptionText = 3,
	AliceBlue = 28,
	AntiqueWhite = 29,
	AppWorkspace = 4,
	Aqua = 30,
	Aquamarine = 31,
	Azure = 32,
	Beige = 33,
	Bisque = 34,
	Black = 35,
	BlanchedAlmond = 36,
	Blue = 37,
	BlueViolet = 38,
	Brown = 39,
	BurlyWood = 40,
	ButtonFace = 168,
	ButtonHighlight = 169,
	ButtonShadow = 170,
	CadetBlue = 41,
	Chartreuse = 42,
	Chocolate = 43,
	Control = 5,
	ControlDark = 6,
	ControlDarkDark = 7,
	ControlLight = 8,
	ControlLightLight = 9,
	ControlText = 10,
	Coral = 44,
	CornflowerBlue = 45,
	Cornsilk = 46,
	Crimson = 47,
	Cyan = 48,
	DarkBlue = 49,
	DarkCyan = 50,
	DarkGoldenrod = 51,
	DarkGray = 52,
	DarkGreen = 53,
	DarkKhaki = 54,
	DarkMagenta = 55,
	DarkOliveGreen = 56,
	DarkOrange = 57,
	DarkOrchid = 58,
	DarkRed = 59,
	DarkSalmon = 60,
	DarkSeaGreen = 61,
	DarkSlateBlue = 62,
	DarkSlateGray = 63,
	DarkTurquoise = 64,
	DarkViolet = 65,
	DeepPink = 66,
	DeepSkyBlue = 67,
	Desktop = 11,
	DimGray = 68,
	DodgerBlue = 69,
	Firebrick = 70,
	FloralWhite = 71,
	ForestGreen = 72,
	Fuchsia = 73,
	Gainsboro = 74,
	GhostWhite = 75,
	Gold = 76,
	Goldenrod = 77,
	GradientActiveCaption = 171,
	GradientInactiveCaption = 172,
	Gray = 78,
	GrayText = 12,
	Green = 79,
	GreenYellow = 80,
	Highlight = 13,
	HighlightText = 14,
	Honeydew = 81,
	HotPink = 82,
	HotTrack = 15,
	InactiveBorder = 16,
	InactiveCaption = 17,
	InactiveCaptionText = 18,
	IndianRed = 83,
	Indigo = 84,
	Info = 19,
	InfoText = 20,
	Ivory = 85,
	Khaki = 86,
	Lavender = 87,
	LavenderBlush = 88,
	LawnGreen = 89,
	LemonChiffon = 90,
	LightBlue = 91,
	LightCoral = 92,
	LightCyan = 93,
	LightGoldenrodYellow = 94,
	LightGray = 95,
	LightGreen = 96,
	LightPink = 97,
	LightSalmon = 98,
	LightSeaGreen = 99,
	LightSkyBlue = 100,
	LightSlateGray = 101,
	LightSteelBlue = 102,
	LightYellow = 103,
	Lime = 104,
	LimeGreen = 105,
	Linen = 106,
	Magenta = 107,
	Maroon = 108,
	MediumAquamarine = 109,
	MediumBlue = 110,
	MediumOrchid = 111,
	MediumPurple = 112,
	MediumSeaGreen = 113,
	MediumSlateBlue = 114,
	MediumSpringGreen = 115,
	MediumTurquoise = 116,
	MediumVioletRed = 117,
	Menu = 21,
	MenuBar = 173,
	MenuHighlight = 174,
	MenuText = 22,
	MidnightBlue = 118,
	MintCream = 119,
	MistyRose = 120,
	Moccasin = 121,
	NavajoWhite = 122,
	Navy = 123,
	OldLace = 124,
	Olive = 125,
	OliveDrab = 126,
	Orange = 127,
	OrangeRed = 128,
	Orchid = 129,
	PaleGoldenrod = 130,
	PaleGreen = 131,
	PaleTurquoise = 132,
	PaleVioletRed = 133,
	PapayaWhip = 134,
	PeachPuff = 135,
	Peru = 136,
	Pink = 137,
	Plum = 138,
	PowderBlue = 139,
	Purple = 140,
	Red = 141,
	RosyBrown = 142,
	RoyalBlue = 143,
	SaddleBrown = 144,
	Salmon = 145,
	SandyBrown = 146,
	ScrollBar = 23,
	SeaGreen = 147,
	SeaShell = 148,
	Sienna = 149,
	Silver = 150,
	SkyBlue = 151,
	SlateBlue = 152,
	SlateGray = 153,
	Snow = 154,
	SpringGreen = 155,
	SteelBlue = 156,
	Tan = 157,
	Teal = 158,
	Thistle = 159,
	Tomato = 160,
	Transparent = 27,
	Turquoise = 161,
	Violet = 162,
	Wheat = 163,
	White = 164,
	WhiteSmoke = 165,
	Window = 24,
	WindowFrame = 25,
	WindowText = 26,
	Yellow = 166,
	YellowGreen = 167,
}

New Type System.Drawing.Point

[Serializable]
public struct Point {
	// constructors
	public Point (Size sz);
	public Point (int dw);
	public Point (int x, int y);
	// fields
	public static Point Empty;
	// properties
	public bool IsEmpty { get; }
	public int X { get; set; }
	public int Y { get; set; }
	// methods
	public static Point Add (Point pt, Size sz);
	public static Point Ceiling (PointF value);
	public override bool Equals (object obj);
	public override int GetHashCode ();
	public void Offset (Point p);
	public void Offset (int dx, int dy);
	public static Point Round (PointF value);
	public static Point Subtract (Point pt, Size sz);
	public override string ToString ();
	public static Point Truncate (PointF value);
	public static Point op_Addition (Point pt, Size sz);
	public static bool op_Equality (Point left, Point right);
	public static Size op_Explicit (Point p);
	public static PointF op_Implicit (Point p);
	public static bool op_Inequality (Point left, Point right);
	public static Point op_Subtraction (Point pt, Size sz);
}

New Type System.Drawing.PointF

[Serializable]
public struct PointF {
	// constructors
	public PointF (float x, float y);
	// fields
	public static PointF Empty;
	// properties
	public bool IsEmpty { get; }
	public float X { get; set; }
	public float Y { get; set; }
	// methods
	public static PointF Add (PointF pt, Size sz);
	public static PointF Add (PointF pt, SizeF sz);
	public override bool Equals (object obj);
	public override int GetHashCode ();
	public static PointF Subtract (PointF pt, Size sz);
	public static PointF Subtract (PointF pt, SizeF sz);
	public override string ToString ();
	public static PointF op_Addition (PointF pt, Size sz);
	public static PointF op_Addition (PointF pt, SizeF sz);
	public static bool op_Equality (PointF left, PointF right);
	public static bool op_Inequality (PointF left, PointF right);
	public static PointF op_Subtraction (PointF pt, Size sz);
	public static PointF op_Subtraction (PointF pt, SizeF sz);
}

New Type System.Drawing.Rectangle

[Serializable]
public struct Rectangle {
	// constructors
	public Rectangle (Point location, Size size);
	public Rectangle (int x, int y, int width, int height);
	// fields
	public static Rectangle Empty;
	// properties
	public int Bottom { get; }
	public int Height { get; set; }
	public bool IsEmpty { get; }
	public int Left { get; }
	public Point Location { get; set; }
	public int Right { get; }
	public Size Size { get; set; }
	public int Top { get; }
	public int Width { get; set; }
	public int X { get; set; }
	public int Y { get; set; }
	// methods
	public static Rectangle Ceiling (RectangleF value);
	public bool Contains (Point pt);
	public bool Contains (Rectangle rect);
	public bool Contains (int x, int y);
	public override bool Equals (object obj);
	public static Rectangle FromLTRB (int left, int top, int right, int bottom);
	public override int GetHashCode ();
	public void Inflate (Size size);
	public void Inflate (int width, int height);
	public static Rectangle Inflate (Rectangle rect, int x, int y);
	public void Intersect (Rectangle rect);
	public static Rectangle Intersect (Rectangle a, Rectangle b);
	public bool IntersectsWith (Rectangle rect);
	public void Offset (Point pos);
	public void Offset (int x, int y);
	public static Rectangle Round (RectangleF value);
	public override string ToString ();
	public static Rectangle Truncate (RectangleF value);
	public static Rectangle Union (Rectangle a, Rectangle b);
	public static bool op_Equality (Rectangle left, Rectangle right);
	public static bool op_Inequality (Rectangle left, Rectangle right);
}

New Type System.Drawing.RectangleF

[Serializable]
public struct RectangleF {
	// constructors
	public RectangleF (PointF location, SizeF size);
	public RectangleF (float x, float y, float width, float height);
	// fields
	public static RectangleF Empty;
	// properties
	public float Bottom { get; }
	public float Height { get; set; }
	public bool IsEmpty { get; }
	public float Left { get; }
	public PointF Location { get; set; }
	public float Right { get; }
	public SizeF Size { get; set; }
	public float Top { get; }
	public float Width { get; set; }
	public float X { get; set; }
	public float Y { get; set; }
	// methods
	public bool Contains (PointF pt);
	public bool Contains (RectangleF rect);
	public bool Contains (float x, float y);
	public override bool Equals (object obj);
	public static RectangleF FromLTRB (float left, float top, float right, float bottom);
	public override int GetHashCode ();
	public void Inflate (SizeF size);
	public void Inflate (float x, float y);
	public static RectangleF Inflate (RectangleF rect, float x, float y);
	public void Intersect (RectangleF rect);
	public static RectangleF Intersect (RectangleF a, RectangleF b);
	public bool IntersectsWith (RectangleF rect);
	public void Offset (PointF pos);
	public void Offset (float x, float y);
	public override string ToString ();
	public static RectangleF Union (RectangleF a, RectangleF b);
	public static bool op_Equality (RectangleF left, RectangleF right);
	public static RectangleF op_Implicit (Rectangle r);
	public static bool op_Inequality (RectangleF left, RectangleF right);
}

New Type System.Drawing.Size

[Serializable]
public struct Size {
	// constructors
	public Size (Point pt);
	public Size (int width, int height);
	// fields
	public static Size Empty;
	// properties
	public int Height { get; set; }
	public bool IsEmpty { get; }
	public int Width { get; set; }
	// methods
	public static Size Add (Size sz1, Size sz2);
	public static Size Ceiling (SizeF value);
	public override bool Equals (object obj);
	public override int GetHashCode ();
	public static Size Round (SizeF value);
	public static Size Subtract (Size sz1, Size sz2);
	public override string ToString ();
	public static Size Truncate (SizeF value);
	public static Size op_Addition (Size sz1, Size sz2);
	public static bool op_Equality (Size sz1, Size sz2);
	public static Point op_Explicit (Size size);
	public static SizeF op_Implicit (Size p);
	public static bool op_Inequality (Size sz1, Size sz2);
	public static Size op_Subtraction (Size sz1, Size sz2);
}

New Type System.Drawing.SizeF

[Serializable]
public struct SizeF {
	// constructors
	public SizeF (PointF pt);
	public SizeF (SizeF size);
	public SizeF (float width, float height);
	// fields
	public static SizeF Empty;
	// properties
	public float Height { get; set; }
	public bool IsEmpty { get; }
	public float Width { get; set; }
	// methods
	public static SizeF Add (SizeF sz1, SizeF sz2);
	public override bool Equals (object obj);
	public override int GetHashCode ();
	public static SizeF Subtract (SizeF sz1, SizeF sz2);
	public PointF ToPointF ();
	public Size ToSize ();
	public override string ToString ();
	public static SizeF op_Addition (SizeF sz1, SizeF sz2);
	public static bool op_Equality (SizeF sz1, SizeF sz2);
	public static PointF op_Explicit (SizeF size);
	public static bool op_Inequality (SizeF sz1, SizeF sz2);
	public static SizeF op_Subtraction (SizeF sz1, SizeF sz2);
}


MonoTouch.NUnitLite.dll

Hide non-breaking changes

Namespace NUnitLite.Runner

Type Changed: NUnitLite.Runner.TextUI

Added field:

	public bool Failure;


System.Net.Http.dll

Hide non-breaking changes

Namespace System.Net.Http

Type Changed: System.Net.Http.HttpClientHandler

Modified properties:

public System.Collections.Generic.IDictionary<System.String,System.Object> Properties { get; set; }

Type Changed: System.Net.Http.NSUrlSessionHandler

Added method:

	protected override void Dispose (bool disposing);


Xamarin Workbook

If it's not already installed, install the Xamarin Workbooks app first. The workbook file should download automatically, but if it doesn't, just click to start the workbook download manually.