Xamarin.Mac SDK API diff: 5.10.0 vs 5.16.0

Mono.Security.dll

Namespace Mono.Security.Protocol.Tls

Type Changed: Mono.Security.Protocol.Tls.SslClientStream

Added interface:

System.IAsyncDisposable

Type Changed: Mono.Security.Protocol.Tls.SslServerStream

Added interface:

System.IAsyncDisposable

Type Changed: Mono.Security.Protocol.Tls.SslStreamBase

Added interface:

System.IAsyncDisposable

mscorlib.dll

Namespace System

Type Changed: System.AppDomainSetup

Added properties:

public string AppDomainManagerAssembly { get; set; }
public string AppDomainManagerType { get; set; }
public string[] PartialTrustVisibleAssemblies { get; set; }

Type Changed: System.BitConverter

Added methods:

public static bool ToBoolean (System.ReadOnlySpan<byte> value);
public static char ToChar (System.ReadOnlySpan<byte> value);
public static double ToDouble (System.ReadOnlySpan<byte> value);
public static short ToInt16 (System.ReadOnlySpan<byte> value);
public static long ToInt64 (System.ReadOnlySpan<byte> value);
public static float ToSingle (System.ReadOnlySpan<byte> value);
public static ushort ToUInt16 (System.ReadOnlySpan<byte> value);
public static bool TryWriteBytes (System.Span<byte> destination, bool value);
public static bool TryWriteBytes (System.Span<byte> destination, char value);
public static bool TryWriteBytes (System.Span<byte> destination, double value);
public static bool TryWriteBytes (System.Span<byte> destination, short value);
public static bool TryWriteBytes (System.Span<byte> destination, int value);
public static bool TryWriteBytes (System.Span<byte> destination, long value);
public static bool TryWriteBytes (System.Span<byte> destination, float value);
public static bool TryWriteBytes (System.Span<byte> destination, ushort value);
public static bool TryWriteBytes (System.Span<byte> destination, uint value);
public static bool TryWriteBytes (System.Span<byte> destination, ulong value);

Type Changed: System.DateTime

Added field:

public static DateTime UnixEpoch;

Added methods:

public static DateTime Parse (System.ReadOnlySpan<char> s, IFormatProvider provider, Globalization.DateTimeStyles styles);
public static DateTime ParseExact (System.ReadOnlySpan<char> s, System.ReadOnlySpan<char> format, IFormatProvider provider, Globalization.DateTimeStyles style);
public static DateTime ParseExact (System.ReadOnlySpan<char> s, string[] formats, IFormatProvider provider, Globalization.DateTimeStyles style);
public virtual bool TryFormat (System.Span<char> destination, out int charsWritten, System.ReadOnlySpan<char> format, IFormatProvider provider);
public static bool TryParse (System.ReadOnlySpan<char> s, out DateTime result);
public static bool TryParse (System.ReadOnlySpan<char> s, IFormatProvider provider, Globalization.DateTimeStyles styles, out DateTime result);
public static bool TryParseExact (System.ReadOnlySpan<char> s, System.ReadOnlySpan<char> format, IFormatProvider provider, Globalization.DateTimeStyles style, out DateTime result);
public static bool TryParseExact (System.ReadOnlySpan<char> s, string[] formats, IFormatProvider provider, Globalization.DateTimeStyles style, out DateTime result);

Type Changed: System.DateTimeOffset

Added field:

public static DateTimeOffset UnixEpoch;

Added methods:

public static DateTimeOffset Parse (System.ReadOnlySpan<char> input, IFormatProvider formatProvider, Globalization.DateTimeStyles styles);
public static DateTimeOffset ParseExact (System.ReadOnlySpan<char> input, System.ReadOnlySpan<char> format, IFormatProvider formatProvider, Globalization.DateTimeStyles styles);
public static DateTimeOffset ParseExact (System.ReadOnlySpan<char> input, string[] formats, IFormatProvider formatProvider, Globalization.DateTimeStyles styles);
public virtual bool TryFormat (System.Span<char> destination, out int charsWritten, System.ReadOnlySpan<char> format, IFormatProvider formatProvider);
public static bool TryParse (System.ReadOnlySpan<char> input, out DateTimeOffset result);
public static bool TryParse (System.ReadOnlySpan<char> input, IFormatProvider formatProvider, Globalization.DateTimeStyles styles, out DateTimeOffset result);
public static bool TryParseExact (System.ReadOnlySpan<char> input, System.ReadOnlySpan<char> format, IFormatProvider formatProvider, Globalization.DateTimeStyles styles, out DateTimeOffset result);
public static bool TryParseExact (System.ReadOnlySpan<char> input, string[] formats, IFormatProvider formatProvider, Globalization.DateTimeStyles styles, out DateTimeOffset result);

Type Changed: System.Decimal

Modified methods:

-public Decimal Parse (System.ReadOnlySpan<char> s, Globalization.NumberStyles style = 7, IFormatProvider provider = NULL)
+public Decimal Parse (System.ReadOnlySpan<char> s, Globalization.NumberStyles style = 111, IFormatProvider provider = NULL)

Type Changed: System.Enum

Added methods:

public static TEnum Parse<TEnum> (string value);
public static TEnum Parse<TEnum> (string value, bool ignoreCase);
public static bool TryParse (Type enumType, string value, out object result);
public static bool TryParse (Type enumType, string value, bool ignoreCase, out object result);

Type Changed: System.GC

Added method:

public static long GetAllocatedBytesForCurrentThread ();

Type Changed: System.IntPtr

Added interface:

System.IEquatable<IntPtr>

Type Changed: System.Math

Added methods:

public static double Acosh (double d);
public static double Asinh (double d);
public static double Atanh (double d);
public static double Cbrt (double d);

Type Changed: System.MemoryExtensions

Added methods:

public static System.ReadOnlyMemory<char> AsMemory (this string text, Index startIndex);
public static System.ReadOnlyMemory<char> AsMemory (this string text, Range range);
public static System.Memory<T> AsMemory<T> (this T[] array, Index startIndex);
public static System.Memory<T> AsMemory<T> (this T[] array, Range range);
public static System.Span<T> AsSpan<T> (this System.ArraySegment<T> segment, Index startIndex);
public static System.Span<T> AsSpan<T> (this System.ArraySegment<T> segment, Range range);
public static System.Span<T> AsSpan<T> (this T[] array, Index startIndex);
public static System.Span<T> AsSpan<T> (this T[] array, Range range);

Type Changed: System.Memory`1

Added interface:

System.IEquatable<System.Memory<T>>

Type Changed: System.Random

Added method:

public virtual void NextBytes (System.Span<byte> buffer);

Type Changed: System.ReadOnlyMemory`1

Added interface:

System.IEquatable<System.ReadOnlyMemory<T>>

Type Changed: System.StringComparer

Added method:

public static StringComparer Create (Globalization.CultureInfo culture, Globalization.CompareOptions options);

Type Changed: System.TimeSpan

Added methods:

public TimeSpan Divide (double divisor);
public double Divide (TimeSpan ts);
public TimeSpan Multiply (double factor);
public static TimeSpan Parse (System.ReadOnlySpan<char> input, IFormatProvider formatProvider);
public static TimeSpan ParseExact (System.ReadOnlySpan<char> input, System.ReadOnlySpan<char> format, IFormatProvider formatProvider, Globalization.TimeSpanStyles styles);
public static TimeSpan ParseExact (System.ReadOnlySpan<char> input, string[] formats, IFormatProvider formatProvider, Globalization.TimeSpanStyles styles);
public virtual bool TryFormat (System.Span<char> destination, out int charsWritten, System.ReadOnlySpan<char> format, IFormatProvider formatProvider);
public static bool TryParse (System.ReadOnlySpan<char> s, out TimeSpan result);
public static bool TryParse (System.ReadOnlySpan<char> input, IFormatProvider formatProvider, out TimeSpan result);
public static bool TryParseExact (System.ReadOnlySpan<char> input, System.ReadOnlySpan<char> format, IFormatProvider formatProvider, out TimeSpan result);
public static bool TryParseExact (System.ReadOnlySpan<char> input, string[] formats, IFormatProvider formatProvider, out TimeSpan result);
public static bool TryParseExact (System.ReadOnlySpan<char> input, System.ReadOnlySpan<char> format, IFormatProvider formatProvider, Globalization.TimeSpanStyles styles, out TimeSpan result);
public static bool TryParseExact (System.ReadOnlySpan<char> input, string[] formats, IFormatProvider formatProvider, Globalization.TimeSpanStyles styles, out TimeSpan result);
public static TimeSpan op_Multiply (double factor, TimeSpan timeSpan);
public static TimeSpan op_Multiply (TimeSpan timeSpan, double factor);

Type Changed: System.Type

Removed interfaces:

Runtime.InteropServices._MemberInfo
Runtime.InteropServices._Type

Modified properties:

-public virtual Reflection.TypeAttributes Attributes { get; }
+public final Reflection.TypeAttributes Attributes { get; }
-public virtual bool HasElementType { get; }
+public final bool HasElementType { get; }
-public virtual bool IsAbstract { get; }
+public final bool IsAbstract { get; }
-public virtual bool IsAnsiClass { get; }
+public final bool IsAnsiClass { get; }
-public virtual bool IsArray { get; }
+public final bool IsArray { get; }
-public virtual bool IsAutoClass { get; }
+public final bool IsAutoClass { get; }
-public virtual bool IsAutoLayout { get; }
+public final bool IsAutoLayout { get; }
-public virtual bool IsByRef { get; }
+public final bool IsByRef { get; }
-public virtual bool IsCOMObject { get; }
+public final bool IsCOMObject { get; }
-public virtual bool IsClass { get; }
+public final bool IsClass { get; }
-public virtual bool IsContextful { get; }
+public final bool IsContextful { get; }
-public virtual bool IsExplicitLayout { get; }
+public final bool IsExplicitLayout { get; }
-public virtual bool IsImport { get; }
+public final bool IsImport { get; }
-public virtual bool IsInterface { get; }
+public final bool IsInterface { get; }
-public virtual bool IsLayoutSequential { get; }
+public final bool IsLayoutSequential { get; }
-public virtual bool IsMarshalByRef { get; }
+public final bool IsMarshalByRef { get; }
-public virtual bool IsNestedAssembly { get; }
+public final bool IsNestedAssembly { get; }
-public virtual bool IsNestedFamANDAssem { get; }
+public final bool IsNestedFamANDAssem { get; }
-public virtual bool IsNestedFamORAssem { get; }
+public final bool IsNestedFamORAssem { get; }
-public virtual bool IsNestedFamily { get; }
+public final bool IsNestedFamily { get; }
-public virtual bool IsNestedPrivate { get; }
+public final bool IsNestedPrivate { get; }
-public virtual bool IsNestedPublic { get; }
+public final bool IsNestedPublic { get; }
-public virtual bool IsNotPublic { get; }
+public final bool IsNotPublic { get; }
-public virtual bool IsPointer { get; }
+public final bool IsPointer { get; }
-public virtual bool IsPrimitive { get; }
+public final bool IsPrimitive { get; }
-public virtual bool IsPublic { get; }
+public final bool IsPublic { get; }
-public virtual bool IsSealed { get; }
+public final bool IsSealed { get; }
-public virtual bool IsSpecialName { get; }
+public final bool IsSpecialName { get; }
-public virtual bool IsUnicodeClass { get; }
+public final bool IsUnicodeClass { get; }
-public virtual bool IsValueType { get; }
+public final bool IsValueType { get; }
-public virtual Reflection.ConstructorInfo TypeInitializer { get; }
+public final Reflection.ConstructorInfo TypeInitializer { get; }

Added properties:

public virtual bool IsByRefLike { get; }
public virtual bool IsGenericMethodParameter { get; }
public virtual bool IsGenericTypeParameter { get; }
public virtual bool IsSignatureType { get; }
public virtual bool IsTypeDefinition { get; }
public virtual bool IsVariableBoundArray { get; }

Modified methods:

-public virtual Reflection.ConstructorInfo GetConstructor (Type[] types)
+public final Reflection.ConstructorInfo GetConstructor (Type[] types)
-public virtual Reflection.ConstructorInfo GetConstructor (Reflection.BindingFlags bindingAttr, Reflection.Binder binder, Type[] types, Reflection.ParameterModifier[] modifiers)
+public final Reflection.ConstructorInfo GetConstructor (Reflection.BindingFlags bindingAttr, Reflection.Binder binder, Type[] types, Reflection.ParameterModifier[] modifiers)
-public virtual Reflection.ConstructorInfo GetConstructor (Reflection.BindingFlags bindingAttr, Reflection.Binder binder, Reflection.CallingConventions callConvention, Type[] types, Reflection.ParameterModifier[] modifiers)
+public final Reflection.ConstructorInfo GetConstructor (Reflection.BindingFlags bindingAttr, Reflection.Binder binder, Reflection.CallingConventions callConvention, Type[] types, Reflection.ParameterModifier[] modifiers)
-public virtual Reflection.ConstructorInfo[] GetConstructors ()
+public final Reflection.ConstructorInfo[] GetConstructors ()
-public virtual Reflection.EventInfo GetEvent (string name)
+public final Reflection.EventInfo GetEvent (string name)
-public virtual Reflection.FieldInfo GetField (string name)
+public final Reflection.FieldInfo GetField (string name)
-public virtual Reflection.FieldInfo[] GetFields ()
+public final Reflection.FieldInfo[] GetFields ()
-public virtual Type GetInterface (string name)
+public final Type GetInterface (string name)
-public virtual Reflection.MemberInfo[] GetMember (string name)
+public final Reflection.MemberInfo[] GetMember (string name)
-public virtual Reflection.MemberInfo[] GetMembers ()
+public final Reflection.MemberInfo[] GetMembers ()
-public virtual Reflection.MethodInfo GetMethod (string name)
+public final Reflection.MethodInfo GetMethod (string name)
-public virtual Reflection.MethodInfo GetMethod (string name, Type[] types)
+public final Reflection.MethodInfo GetMethod (string name, Type[] types)
-public virtual Reflection.MethodInfo GetMethod (string name, Type[] types, Reflection.ParameterModifier[] modifiers)
+public final Reflection.MethodInfo GetMethod (string name, Type[] types, Reflection.ParameterModifier[] modifiers)
-public virtual Reflection.MethodInfo GetMethod (string name, Reflection.BindingFlags bindingAttr, Reflection.Binder binder, Reflection.CallingConventions callConvention, Type[] types, Reflection.ParameterModifier[] modifiers)
+public final Reflection.MethodInfo GetMethod (string name, Reflection.BindingFlags bindingAttr, Reflection.Binder binder, Reflection.CallingConventions callConvention, Type[] types, Reflection.ParameterModifier[] modifiers)
-public virtual Reflection.MethodInfo[] GetMethods ()
+public final Reflection.MethodInfo[] GetMethods ()
-public virtual Type GetNestedType (string name)
+public final Type GetNestedType (string name)
-public virtual Type[] GetNestedTypes ()
+public final Type[] GetNestedTypes ()
-public virtual Reflection.PropertyInfo[] GetProperties ()
+public final Reflection.PropertyInfo[] GetProperties ()
-public virtual Reflection.PropertyInfo GetProperty (string name)
+public final Reflection.PropertyInfo GetProperty (string name)
-public virtual Reflection.PropertyInfo GetProperty (string name, Type returnType)
+public final Reflection.PropertyInfo GetProperty (string name, Type returnType)
-public virtual Reflection.PropertyInfo GetProperty (string name, Type[] types)
+public final Reflection.PropertyInfo GetProperty (string name, Type[] types)
-public virtual Reflection.PropertyInfo GetProperty (string name, Type returnType, Type[] types)
+public final Reflection.PropertyInfo GetProperty (string name, Type returnType, Type[] types)
-public virtual Reflection.PropertyInfo GetProperty (string name, Type returnType, Type[] types, Reflection.ParameterModifier[] modifiers)
+public final Reflection.PropertyInfo GetProperty (string name, Type returnType, Type[] types, Reflection.ParameterModifier[] modifiers)
-public virtual Type GetType ()
+public final Type GetType ()
-public virtual object InvokeMember (string name, Reflection.BindingFlags invokeAttr, Reflection.Binder binder, object target, object[] args)
+public final object InvokeMember (string name, Reflection.BindingFlags invokeAttr, Reflection.Binder binder, object target, object[] args)
-public virtual object InvokeMember (string name, Reflection.BindingFlags invokeAttr, Reflection.Binder binder, object target, object[] args, Globalization.CultureInfo culture)
+public final object InvokeMember (string name, Reflection.BindingFlags invokeAttr, Reflection.Binder binder, object target, object[] args, Globalization.CultureInfo culture)

Added methods:

public Reflection.MethodInfo GetMethod (string name, int genericParameterCount, Type[] types);
public Reflection.MethodInfo GetMethod (string name, int genericParameterCount, Type[] types, Reflection.ParameterModifier[] modifiers);
public Reflection.MethodInfo GetMethod (string name, int genericParameterCount, Reflection.BindingFlags bindingAttr, Reflection.Binder binder, Type[] types, Reflection.ParameterModifier[] modifiers);
public Reflection.MethodInfo GetMethod (string name, int genericParameterCount, Reflection.BindingFlags bindingAttr, Reflection.Binder binder, Reflection.CallingConventions callConvention, Type[] types, Reflection.ParameterModifier[] modifiers);
protected virtual Reflection.MethodInfo GetMethodImpl (string name, int genericParameterCount, Reflection.BindingFlags bindingAttr, Reflection.Binder binder, Reflection.CallingConventions callConvention, Type[] types, Reflection.ParameterModifier[] modifiers);
public static Type MakeGenericMethodParameter (int position);
public static Type MakeGenericSignatureType (Type genericTypeDefinition, Type[] typeArguments);

Type Changed: System.UIntPtr

Added interface:

System.IEquatable<UIntPtr>

Type Changed: System.Version

Added methods:

public static Version Parse (System.ReadOnlySpan<char> input);
public bool TryFormat (System.Span<char> destination, out int charsWritten);
public bool TryFormat (System.Span<char> destination, int fieldCount, out int charsWritten);
public static bool TryParse (System.ReadOnlySpan<char> input, out Version result);

New Type: System.CultureAwareComparer

[Serializable]
public sealed class CultureAwareComparer : System.StringComparer, System.Collections.Generic.IComparer<string>, System.Collections.Generic.IEqualityComparer<string>, Collections.IComparer, Collections.IEqualityComparer, Runtime.Serialization.ISerializable {
	// methods
	public override int Compare (string x, string y);
	public override bool Equals (object obj);
	public override bool Equals (string x, string y);
	public override int GetHashCode ();
	public override int GetHashCode (string obj);
	public virtual void GetObjectData (Runtime.Serialization.SerializationInfo info, Runtime.Serialization.StreamingContext context);
}

New Type: System.IAsyncDisposable

public interface IAsyncDisposable {
	// methods
	public virtual Threading.Tasks.ValueTask DisposeAsync ();
}

New Type: System.Index

public struct Index, System.IEquatable<Index> {
	// constructors
	public Index (int value, bool fromEnd);
	// properties
	public static Index End { get; }
	public bool IsFromEnd { get; }
	public static Index Start { get; }
	public int Value { get; }
	// methods
	public virtual bool Equals (Index other);
	public override bool Equals (object value);
	public static Index FromEnd (int value);
	public static Index FromStart (int value);
	public override int GetHashCode ();
	public int GetOffset (int length);
	public override string ToString ();
	public static Index op_Implicit (int value);
}

New Type: System.OrdinalComparer

[Serializable]
public class OrdinalComparer : System.StringComparer, System.Collections.Generic.IComparer<string>, System.Collections.Generic.IEqualityComparer<string>, Collections.IComparer, Collections.IEqualityComparer {
	// methods
	public override int Compare (string x, string y);
	public override bool Equals (object obj);
	public override bool Equals (string x, string y);
	public override int GetHashCode ();
	public override int GetHashCode (string obj);
}

New Type: System.Range

public struct Range, System.IEquatable<Range> {
	// constructors
	public Range (Index start, Index end);
	// properties
	public static Range All { get; }
	public Index End { get; }
	public Index Start { get; }
	// methods
	public static Range EndAt (Index end);
	public override bool Equals (object value);
	public virtual bool Equals (Range other);
	public override int GetHashCode ();
	public System.ValueTuple<Int32,System.Int32> GetOffsetAndLength (int length);
	public static Range StartAt (Index start);
	public override string ToString ();
}

Namespace System.Collections.Generic

New Type: System.Collections.Generic.IAsyncEnumerable`1

public interface IAsyncEnumerable`1 {
	// methods
	public virtual System.Collections.Generic.IAsyncEnumerator<T> GetAsyncEnumerator (System.Threading.CancellationToken cancellationToken);
}

New Type: System.Collections.Generic.IAsyncEnumerator`1

public interface IAsyncEnumerator`1 : System.IAsyncDisposable {
	// properties
	public virtual T Current { get; }
	// methods
	public virtual System.Threading.Tasks.ValueTask<bool> MoveNextAsync ();
}

New Type: System.Collections.Generic.Queue`1

[Serializable]
public class Queue`1 : System.Collections.Generic.IEnumerable<T>, System.Collections.Generic.IReadOnlyCollection<T>, System.Collections.ICollection, System.Collections.IEnumerable {
	// constructors
	public Queue`1 ();
	public Queue`1 (System.Collections.Generic.IEnumerable<T> collection);
	public Queue`1 (int capacity);
	// properties
	public virtual int Count { get; }
	// methods
	public void Clear ();
	public bool Contains (T item);
	public void CopyTo (T[] array, int arrayIndex);
	public T Dequeue ();
	public void Enqueue (T item);
	public System.Collections.Generic.Queue<Enumerator[T> GetEnumerator ();
	public T Peek ();
	public T[] ToArray ();
	public void TrimExcess ();
	public bool TryDequeue (out T result);
	public bool TryPeek (out T result);

	// inner types
	[Serializable]
	public struct Enumerator, System.Collections.Generic.IEnumerator<T>, System.Collections.IEnumerator, System.IDisposable {
		// properties
		public virtual T Current { get; }
		// methods
		public virtual void Dispose ();
		public virtual bool MoveNext ();
	}
}

New Type: System.Collections.Generic.Stack`1

[Serializable]
public class Stack`1 : System.Collections.Generic.IEnumerable<T>, System.Collections.Generic.IReadOnlyCollection<T>, System.Collections.ICollection, System.Collections.IEnumerable {
	// constructors
	public Stack`1 ();
	public Stack`1 (System.Collections.Generic.IEnumerable<T> collection);
	public Stack`1 (int capacity);
	// properties
	public virtual int Count { get; }
	// methods
	public void Clear ();
	public bool Contains (T item);
	public void CopyTo (T[] array, int arrayIndex);
	public System.Collections.Generic.Stack<Enumerator[T> GetEnumerator ();
	public T Peek ();
	public T Pop ();
	public void Push (T item);
	public T[] ToArray ();
	public void TrimExcess ();
	public bool TryPeek (out T result);
	public bool TryPop (out T result);

	// inner types
	[Serializable]
	public struct Enumerator, System.Collections.Generic.IEnumerator<T>, System.Collections.IEnumerator, System.IDisposable {
		// properties
		public virtual T Current { get; }
		// methods
		public virtual void Dispose ();
		public virtual bool MoveNext ();
	}
}

Namespace System.Diagnostics.Tracing

Type Changed: System.Diagnostics.Tracing.EventCounter

Added interface:

System.IDisposable

Added method:

public virtual void Dispose ();

Type Changed: System.Diagnostics.Tracing.EventListener

Added events:

public event System.EventHandler<EventSourceCreatedEventArgs> EventSourceCreated;
public event System.EventHandler<EventWrittenEventArgs> EventWritten;

New Type: System.Diagnostics.Tracing.EventSourceCreatedEventArgs

public class EventSourceCreatedEventArgs : System.EventArgs {
	// constructors
	public EventSourceCreatedEventArgs ();
	// properties
	public EventSource EventSource { get; }
}

Namespace System.Globalization

New Type: System.Globalization.ISOWeek

public static class ISOWeek {
	// methods
	public static int GetWeekOfYear (System.DateTime date);
	public static int GetWeeksInYear (int year);
	public static int GetYear (System.DateTime date);
	public static System.DateTime GetYearEnd (int year);
	public static System.DateTime GetYearStart (int year);
	public static System.DateTime ToDateTime (int year, int week, System.DayOfWeek dayOfWeek);
}

Namespace System.IO

Type Changed: System.IO.BinaryReader

Added methods:

public virtual int Read (System.Span<byte> buffer);
public virtual int Read (System.Span<char> buffer);

Type Changed: System.IO.BinaryWriter

Added interface:

System.IAsyncDisposable

Added methods:

public virtual System.Threading.Tasks.ValueTask DisposeAsync ();
public virtual void Write (System.ReadOnlySpan<byte> buffer);
public virtual void Write (System.ReadOnlySpan<char> buffer);

Type Changed: System.IO.BufferedStream

Added interface:

System.IAsyncDisposable

Added properties:

public int BufferSize { get; }
public Stream UnderlyingStream { get; }

Added methods:

public override void CopyTo (Stream destination, int bufferSize);
public override System.Threading.Tasks.Task CopyToAsync (Stream destination, int bufferSize, System.Threading.CancellationToken cancellationToken);
public override System.Threading.Tasks.ValueTask DisposeAsync ();
public override int Read (System.Span<byte> destination);
public override System.Threading.Tasks.ValueTask<int> ReadAsync (System.Memory<byte> buffer, System.Threading.CancellationToken cancellationToken);
public override void Write (System.ReadOnlySpan<byte> buffer);
public override System.Threading.Tasks.ValueTask WriteAsync (System.ReadOnlyMemory<byte> buffer, System.Threading.CancellationToken cancellationToken);

Type Changed: System.IO.Directory

Added methods:

public static System.Collections.Generic.IEnumerable<string> EnumerateDirectories (string path, string searchPattern, EnumerationOptions enumerationOptions);
public static System.Collections.Generic.IEnumerable<string> EnumerateFileSystemEntries (string path, string searchPattern, EnumerationOptions enumerationOptions);
public static System.Collections.Generic.IEnumerable<string> EnumerateFiles (string path, string searchPattern, EnumerationOptions enumerationOptions);
public static string[] GetDirectories (string path, string searchPattern, EnumerationOptions enumerationOptions);
public static string[] GetFileSystemEntries (string path, string searchPattern, EnumerationOptions enumerationOptions);
public static string[] GetFiles (string path, string searchPattern, EnumerationOptions enumerationOptions);

Type Changed: System.IO.DirectoryInfo

Removed properties:

public override bool Exists { get; }
public override string Name { get; }

Removed method:

public override string ToString ();

Added methods:

public System.Collections.Generic.IEnumerable<DirectoryInfo> EnumerateDirectories (string searchPattern, EnumerationOptions enumerationOptions);
public System.Collections.Generic.IEnumerable<FileSystemInfo> EnumerateFileSystemInfos (string searchPattern, EnumerationOptions enumerationOptions);
public System.Collections.Generic.IEnumerable<FileInfo> EnumerateFiles (string searchPattern, EnumerationOptions enumerationOptions);
public DirectoryInfo[] GetDirectories (string searchPattern, EnumerationOptions enumerationOptions);
public FileSystemInfo[] GetFileSystemInfos (string searchPattern, EnumerationOptions enumerationOptions);
public FileInfo[] GetFiles (string searchPattern, EnumerationOptions enumerationOptions);

Type Changed: System.IO.File

Added methods:

public static System.Threading.Tasks.Task AppendAllLinesAsync (string path, System.Collections.Generic.IEnumerable<string> contents, System.Threading.CancellationToken cancellationToken);
public static System.Threading.Tasks.Task AppendAllLinesAsync (string path, System.Collections.Generic.IEnumerable<string> contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken);
public static System.Threading.Tasks.Task AppendAllTextAsync (string path, string contents, System.Threading.CancellationToken cancellationToken);
public static System.Threading.Tasks.Task AppendAllTextAsync (string path, string contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken);
public static System.Threading.Tasks.Task<System.Byte[]> ReadAllBytesAsync (string path, System.Threading.CancellationToken cancellationToken);
public static System.Threading.Tasks.Task<System.String[]> ReadAllLinesAsync (string path, System.Threading.CancellationToken cancellationToken);
public static System.Threading.Tasks.Task<System.String[]> ReadAllLinesAsync (string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken);
public static System.Threading.Tasks.Task<string> ReadAllTextAsync (string path, System.Threading.CancellationToken cancellationToken);
public static System.Threading.Tasks.Task<string> ReadAllTextAsync (string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken);
public static System.Threading.Tasks.Task WriteAllBytesAsync (string path, byte[] bytes, System.Threading.CancellationToken cancellationToken);
public static System.Threading.Tasks.Task WriteAllLinesAsync (string path, System.Collections.Generic.IEnumerable<string> contents, System.Threading.CancellationToken cancellationToken);
public static System.Threading.Tasks.Task WriteAllLinesAsync (string path, System.Collections.Generic.IEnumerable<string> contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken);
public static System.Threading.Tasks.Task WriteAllTextAsync (string path, string contents, System.Threading.CancellationToken cancellationToken);
public static System.Threading.Tasks.Task WriteAllTextAsync (string path, string contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken);

Type Changed: System.IO.FileInfo

Removed property:

public override bool Exists { get; }

Removed method:

public override string ToString ();

Type Changed: System.IO.FileStream

Added interface:

System.IAsyncDisposable

Modified properties:

 public ---virtual--- string Name { get; }

Type Changed: System.IO.FileSystemInfo

Modified properties:

-public abstract bool Exists { get; }
+public virtual bool Exists { get; }
-public abstract string Name { get; }
+public virtual string Name { get; }

Added method:

public override string ToString ();

Type Changed: System.IO.MemoryStream

Added interface:

System.IAsyncDisposable

Added methods:

public override void CopyTo (Stream destination, int bufferSize);
public override int Read (System.Span<byte> buffer);
public override System.Threading.Tasks.ValueTask<int> ReadAsync (System.Memory<byte> buffer, System.Threading.CancellationToken cancellationToken);
public override void Write (System.ReadOnlySpan<byte> buffer);
public override System.Threading.Tasks.ValueTask WriteAsync (System.ReadOnlyMemory<byte> buffer, System.Threading.CancellationToken cancellationToken);

Type Changed: System.IO.Path

Added methods:

public static System.ReadOnlySpan<char> GetDirectoryName (System.ReadOnlySpan<char> path);
public static System.ReadOnlySpan<char> GetExtension (System.ReadOnlySpan<char> path);
public static System.ReadOnlySpan<char> GetFileNameWithoutExtension (System.ReadOnlySpan<char> path);
public static string GetFullPath (string path, string basePath);
public static System.ReadOnlySpan<char> GetPathRoot (System.ReadOnlySpan<char> path);
public static string GetRelativePath (string relativeTo, string path);
public static bool HasExtension (System.ReadOnlySpan<char> path);
public static bool IsPathFullyQualified (System.ReadOnlySpan<char> path);
public static bool IsPathFullyQualified (string path);
public static bool IsPathRooted (System.ReadOnlySpan<char> path);
public static string Join (System.ReadOnlySpan<char> path1, System.ReadOnlySpan<char> path2);
public static string Join (System.ReadOnlySpan<char> path1, System.ReadOnlySpan<char> path2, System.ReadOnlySpan<char> path3);
public static bool TryJoin (System.ReadOnlySpan<char> path1, System.ReadOnlySpan<char> path2, System.Span<char> destination, out int charsWritten);
public static bool TryJoin (System.ReadOnlySpan<char> path1, System.ReadOnlySpan<char> path2, System.ReadOnlySpan<char> path3, System.Span<char> destination, out int charsWritten);

Type Changed: System.IO.Stream

Added interface:

System.IAsyncDisposable

Modified methods:

-public virtual int Read (System.Span<byte> destination)
+public virtual int Read (System.Span<byte> buffer)
-public virtual System.Threading.Tasks.ValueTask<int> ReadAsync (System.Memory<byte> destination, System.Threading.CancellationToken cancellationToken = NULL)
+public virtual System.Threading.Tasks.ValueTask<int> ReadAsync (System.Memory<byte> buffer, System.Threading.CancellationToken cancellationToken = NULL)
-public virtual void Write (System.ReadOnlySpan<byte> source)
+public virtual void Write (System.ReadOnlySpan<byte> buffer)
-public virtual System.Threading.Tasks.ValueTask WriteAsync (System.ReadOnlyMemory<byte> source, System.Threading.CancellationToken cancellationToken = NULL)
+public virtual System.Threading.Tasks.ValueTask WriteAsync (System.ReadOnlyMemory<byte> buffer, System.Threading.CancellationToken cancellationToken = NULL)

Added methods:

public System.Threading.Tasks.Task CopyToAsync (Stream destination, System.Threading.CancellationToken cancellationToken);
public virtual System.Threading.Tasks.ValueTask DisposeAsync ();

Type Changed: System.IO.StreamReader

Added methods:

public override int Read (System.Span<char> buffer);
public override System.Threading.Tasks.ValueTask<int> ReadAsync (System.Memory<char> buffer, System.Threading.CancellationToken cancellationToken);
public override int ReadBlock (System.Span<char> buffer);
public override System.Threading.Tasks.ValueTask<int> ReadBlockAsync (System.Memory<char> buffer, System.Threading.CancellationToken cancellationToken);

Type Changed: System.IO.StreamWriter

Added interface:

System.IAsyncDisposable

Added methods:

public override System.Threading.Tasks.ValueTask DisposeAsync ();
public override void Write (System.ReadOnlySpan<char> buffer);
public override System.Threading.Tasks.Task WriteAsync (System.ReadOnlyMemory<char> buffer, System.Threading.CancellationToken cancellationToken);
public override void WriteLine (System.ReadOnlySpan<char> value);
public override void WriteLine (string value);
public override System.Threading.Tasks.Task WriteLineAsync (System.ReadOnlyMemory<char> buffer, System.Threading.CancellationToken cancellationToken);

Type Changed: System.IO.StringWriter

Added interface:

System.IAsyncDisposable

Type Changed: System.IO.TextReader

Added methods:

public virtual int Read (System.Span<char> buffer);
public virtual System.Threading.Tasks.ValueTask<int> ReadAsync (System.Memory<char> buffer, System.Threading.CancellationToken cancellationToken);
public virtual int ReadBlock (System.Span<char> buffer);
public virtual System.Threading.Tasks.ValueTask<int> ReadBlockAsync (System.Memory<char> buffer, System.Threading.CancellationToken cancellationToken);

Type Changed: System.IO.TextWriter

Added interface:

System.IAsyncDisposable

Added methods:

public virtual System.Threading.Tasks.ValueTask DisposeAsync ();
public virtual void Write (System.ReadOnlySpan<char> buffer);
public virtual System.Threading.Tasks.Task WriteAsync (System.ReadOnlyMemory<char> buffer, System.Threading.CancellationToken cancellationToken);
public virtual void WriteLine (System.ReadOnlySpan<char> buffer);
public virtual System.Threading.Tasks.Task WriteLineAsync (System.ReadOnlyMemory<char> buffer, System.Threading.CancellationToken cancellationToken);

Type Changed: System.IO.UnmanagedMemoryStream

Added interface:

System.IAsyncDisposable

Added methods:

public override int Read (System.Span<byte> buffer);
public override System.Threading.Tasks.ValueTask<int> ReadAsync (System.Memory<byte> buffer, System.Threading.CancellationToken cancellationToken);
public override void Write (System.ReadOnlySpan<byte> buffer);
public override System.Threading.Tasks.ValueTask WriteAsync (System.ReadOnlyMemory<byte> buffer, System.Threading.CancellationToken cancellationToken);

New Type: System.IO.EnumerationOptions

public class EnumerationOptions {
	// constructors
	public EnumerationOptions ();
	// properties
	public FileAttributes AttributesToSkip { get; set; }
	public int BufferSize { get; set; }
	public bool IgnoreInaccessible { get; set; }
	public MatchCasing MatchCasing { get; set; }
	public MatchType MatchType { get; set; }
	public bool RecurseSubdirectories { get; set; }
	public bool ReturnSpecialDirectories { get; set; }
}

New Type: System.IO.MatchCasing

[Serializable]
public enum MatchCasing {
	CaseInsensitive = 2,
	CaseSensitive = 1,
	PlatformDefault = 0,
}

New Type: System.IO.MatchType

[Serializable]
public enum MatchType {
	Simple = 0,
	Win32 = 1,
}

Namespace System.IO.IsolatedStorage

Type Changed: System.IO.IsolatedStorage.IsolatedStorage

Modified methods:

-protected abstract System.Security.Permissions.IsolatedStoragePermission GetPermission (System.Security.PermissionSet ps)
+protected virtual System.Security.Permissions.IsolatedStoragePermission GetPermission (System.Security.PermissionSet ps)

Type Changed: System.IO.IsolatedStorage.IsolatedStorageFileStream

Added interface:

System.IAsyncDisposable

Namespace System.Numerics

Type Changed: System.Numerics.Vector`1

Added constructor:

public Vector`1 (System.Span<T> values);

Namespace System.Reflection

Type Changed: System.Reflection.Assembly

Modified constructors:

-protected Assembly ()
+public Assembly ()

Added method:

public virtual System.Type[] GetForwardedTypes ();

Type Changed: System.Reflection.ConstructorInfo

Removed interfaces:

System.Runtime.InteropServices._MemberInfo
System.Runtime.InteropServices._MethodBase

Type Changed: System.Reflection.EventInfo

Removed interface:

System.Runtime.InteropServices._MemberInfo

Type Changed: System.Reflection.FieldInfo

Removed interface:

System.Runtime.InteropServices._MemberInfo

Type Changed: System.Reflection.MemberInfo

Removed interface:

System.Runtime.InteropServices._MemberInfo

Added method:

public virtual bool HasSameMetadataDefinitionAs (MemberInfo other);

Type Changed: System.Reflection.MethodBase

Removed interfaces:

System.Runtime.InteropServices._MemberInfo
System.Runtime.InteropServices._MethodBase

Added property:

public virtual bool IsConstructedGenericMethod { get; }

Modified methods:

-public virtual object Invoke (object obj, object[] parameters)
+public final object Invoke (object obj, object[] parameters)

Type Changed: System.Reflection.MethodInfo

Removed interfaces:

System.Runtime.InteropServices._MemberInfo
System.Runtime.InteropServices._MethodBase

Type Changed: System.Reflection.PropertyInfo

Removed interface:

System.Runtime.InteropServices._MemberInfo

Type Changed: System.Reflection.TypeDelegator

Removed interfaces:

System.Runtime.InteropServices._MemberInfo
System.Runtime.InteropServices._Type

Added properties:

public override bool IsByRefLike { get; }
public override bool IsCollectible { get; }
public override bool IsGenericMethodParameter { get; }
public override bool IsGenericTypeParameter { get; }
public override bool IsTypeDefinition { get; }

Type Changed: System.Reflection.TypeInfo

Added constructor:

protected TypeInfo ();

Removed interfaces:

System.Runtime.InteropServices._MemberInfo
System.Runtime.InteropServices._Type

New Type: System.Reflection.AssemblyExtensions

public static class AssemblyExtensions {
	// methods
	public static System.Type[] GetExportedTypes (Assembly assembly);
	public static Module[] GetModules (Assembly assembly);
	public static System.Type[] GetTypes (Assembly assembly);
}

New Type: System.Reflection.EventInfoExtensions

public static class EventInfoExtensions {
	// methods
	public static MethodInfo GetAddMethod (EventInfo eventInfo);
	public static MethodInfo GetAddMethod (EventInfo eventInfo, bool nonPublic);
	public static MethodInfo GetRaiseMethod (EventInfo eventInfo);
	public static MethodInfo GetRaiseMethod (EventInfo eventInfo, bool nonPublic);
	public static MethodInfo GetRemoveMethod (EventInfo eventInfo);
	public static MethodInfo GetRemoveMethod (EventInfo eventInfo, bool nonPublic);
}

New Type: System.Reflection.MemberInfoExtensions

public static class MemberInfoExtensions {
	// methods
	public static int GetMetadataToken (this MemberInfo member);
	public static bool HasMetadataToken (this MemberInfo member);
}

New Type: System.Reflection.MethodInfoExtensions

public static class MethodInfoExtensions {
	// methods
	public static MethodInfo GetBaseDefinition (MethodInfo method);
}

New Type: System.Reflection.MissingMetadataException

public sealed class MissingMetadataException : System.TypeAccessException, System.Runtime.Serialization.ISerializable {
	// constructors
	public MissingMetadataException ();
	public MissingMetadataException (string message);
}

New Type: System.Reflection.ModuleExtensions

public static class ModuleExtensions {
	// methods
	public static System.Guid GetModuleVersionId (this Module module);
	public static bool HasModuleVersionId (this Module module);
}

New Type: System.Reflection.PropertyInfoExtensions

public static class PropertyInfoExtensions {
	// methods
	public static MethodInfo[] GetAccessors (PropertyInfo property);
	public static MethodInfo[] GetAccessors (PropertyInfo property, bool nonPublic);
	public static MethodInfo GetGetMethod (PropertyInfo property);
	public static MethodInfo GetGetMethod (PropertyInfo property, bool nonPublic);
	public static MethodInfo GetSetMethod (PropertyInfo property);
	public static MethodInfo GetSetMethod (PropertyInfo property, bool nonPublic);
}

New Type: System.Reflection.TypeExtensions

public static class TypeExtensions {
	// methods
	public static ConstructorInfo GetConstructor (System.Type type, System.Type[] types);
	public static ConstructorInfo[] GetConstructors (System.Type type);
	public static ConstructorInfo[] GetConstructors (System.Type type, BindingFlags bindingAttr);
	public static MemberInfo[] GetDefaultMembers (System.Type type);
	public static EventInfo GetEvent (System.Type type, string name);
	public static EventInfo GetEvent (System.Type type, string name, BindingFlags bindingAttr);
	public static EventInfo[] GetEvents (System.Type type);
	public static EventInfo[] GetEvents (System.Type type, BindingFlags bindingAttr);
	public static FieldInfo GetField (System.Type type, string name);
	public static FieldInfo GetField (System.Type type, string name, BindingFlags bindingAttr);
	public static FieldInfo[] GetFields (System.Type type);
	public static FieldInfo[] GetFields (System.Type type, BindingFlags bindingAttr);
	public static System.Type[] GetGenericArguments (System.Type type);
	public static System.Type[] GetInterfaces (System.Type type);
	public static MemberInfo[] GetMember (System.Type type, string name);
	public static MemberInfo[] GetMember (System.Type type, string name, BindingFlags bindingAttr);
	public static MemberInfo[] GetMembers (System.Type type);
	public static MemberInfo[] GetMembers (System.Type type, BindingFlags bindingAttr);
	public static MethodInfo GetMethod (System.Type type, string name);
	public static MethodInfo GetMethod (System.Type type, string name, BindingFlags bindingAttr);
	public static MethodInfo GetMethod (System.Type type, string name, System.Type[] types);
	public static MethodInfo[] GetMethods (System.Type type);
	public static MethodInfo[] GetMethods (System.Type type, BindingFlags bindingAttr);
	public static System.Type GetNestedType (System.Type type, string name, BindingFlags bindingAttr);
	public static System.Type[] GetNestedTypes (System.Type type, BindingFlags bindingAttr);
	public static PropertyInfo[] GetProperties (System.Type type);
	public static PropertyInfo[] GetProperties (System.Type type, BindingFlags bindingAttr);
	public static PropertyInfo GetProperty (System.Type type, string name);
	public static PropertyInfo GetProperty (System.Type type, string name, BindingFlags bindingAttr);
	public static PropertyInfo GetProperty (System.Type type, string name, System.Type returnType);
	public static PropertyInfo GetProperty (System.Type type, string name, System.Type returnType, System.Type[] types);
	public static bool IsAssignableFrom (System.Type type, System.Type c);
	public static bool IsInstanceOfType (System.Type type, object o);
}

Namespace System.Reflection.Emit

Type Changed: System.Reflection.Emit.AssemblyBuilder

Removed interface:

System.Runtime.InteropServices._AssemblyBuilder

Added properties:

public override string EscapedCodeBase { get; }
public override System.Security.Policy.Evidence Evidence { get; }

Added method:

public override string ToString ();

Type Changed: System.Reflection.Emit.ConstructorBuilder

Removed interfaces:

System.Runtime.InteropServices._ConstructorBuilder
System.Runtime.InteropServices._MemberInfo
System.Runtime.InteropServices._MethodBase

Type Changed: System.Reflection.Emit.CustomAttributeBuilder

Removed interface:

System.Runtime.InteropServices._CustomAttributeBuilder

Type Changed: System.Reflection.Emit.DynamicMethod

Removed interfaces:

System.Runtime.InteropServices._MemberInfo
System.Runtime.InteropServices._MethodBase

Type Changed: System.Reflection.Emit.EnumBuilder

Removed interfaces:

System.Runtime.InteropServices._EnumBuilder
System.Runtime.InteropServices._MemberInfo
System.Runtime.InteropServices._Type

Added property:

public override bool IsTypeDefinition { get; }

Type Changed: System.Reflection.Emit.EventBuilder

Removed interface:

System.Runtime.InteropServices._EventBuilder

Type Changed: System.Reflection.Emit.EventToken

Added interface:

System.IEquatable<EventToken>

Type Changed: System.Reflection.Emit.FieldBuilder

Removed interfaces:

System.Runtime.InteropServices._FieldBuilder
System.Runtime.InteropServices._MemberInfo

Type Changed: System.Reflection.Emit.FieldToken

Added interface:

System.IEquatable<FieldToken>

Type Changed: System.Reflection.Emit.GenericTypeParameterBuilder

Removed interfaces:

System.Runtime.InteropServices._MemberInfo
System.Runtime.InteropServices._Type

Type Changed: System.Reflection.Emit.ILGenerator

Removed interface:

System.Runtime.InteropServices._ILGenerator

Type Changed: System.Reflection.Emit.Label

Added interface:

System.IEquatable<Label>

Type Changed: System.Reflection.Emit.LocalBuilder

Removed interface:

System.Runtime.InteropServices._LocalBuilder

Type Changed: System.Reflection.Emit.MethodBuilder

Removed interfaces:

System.Runtime.InteropServices._MemberInfo
System.Runtime.InteropServices._MethodBase
System.Runtime.InteropServices._MethodBuilder

Type Changed: System.Reflection.Emit.MethodToken

Added interface:

System.IEquatable<MethodToken>

Type Changed: System.Reflection.Emit.ModuleBuilder

Removed interface:

System.Runtime.InteropServices._ModuleBuilder

Type Changed: System.Reflection.Emit.OpCode

Added interface:

System.IEquatable<OpCode>

Type Changed: System.Reflection.Emit.ParameterBuilder

Removed interface:

System.Runtime.InteropServices._ParameterBuilder

Type Changed: System.Reflection.Emit.ParameterToken

Added interface:

System.IEquatable<ParameterToken>

Type Changed: System.Reflection.Emit.PropertyBuilder

Removed interfaces:

System.Runtime.InteropServices._MemberInfo
System.Runtime.InteropServices._PropertyBuilder

Type Changed: System.Reflection.Emit.PropertyToken

Added interface:

System.IEquatable<PropertyToken>

Type Changed: System.Reflection.Emit.SignatureToken

Added interface:

System.IEquatable<SignatureToken>

Type Changed: System.Reflection.Emit.StringToken

Added interface:

System.IEquatable<StringToken>

Type Changed: System.Reflection.Emit.TypeBuilder

Removed interfaces:

System.Runtime.InteropServices._MemberInfo
System.Runtime.InteropServices._Type
System.Runtime.InteropServices._TypeBuilder

Added property:

public override bool IsTypeDefinition { get; }

Type Changed: System.Reflection.Emit.TypeToken

Added interface:

System.IEquatable<TypeToken>

Namespace System.Runtime

New Type: System.Runtime.AmbiguousImplementationException

[Serializable]
public sealed class AmbiguousImplementationException : System.Exception, Serialization.ISerializable {
	// constructors
	public AmbiguousImplementationException ();
	public AmbiguousImplementationException (string message);
	public AmbiguousImplementationException (string message, System.Exception innerException);
}

Namespace System.Runtime.CompilerServices

Type Changed: System.Runtime.CompilerServices.ConditionalWeakTable`2

Added methods:

public void AddOrUpdate (TKey key, TValue value);
public void Clear ();

Type Changed: System.Runtime.CompilerServices.RuntimeFeature

Added field:

public static const string DefaultImplementationsOfInterfaces = "DefaultImplementationsOfInterfaces";

Added properties:

public static bool IsDynamicCodeCompiled { get; }
public static bool IsDynamicCodeSupported { get; }

Type Changed: System.Runtime.CompilerServices.RuntimeHelpers

Added methods:

public static T[] GetSubArray<T> (T[] array, System.Range range);
public static object GetUninitializedObject (System.Type type);

New Type: System.Runtime.CompilerServices.AsyncIteratorMethodBuilder

public struct AsyncIteratorMethodBuilder {
	// methods
	public void AwaitOnCompleted<TAwaiter, TStateMachine> (ref TAwaiter awaiter, ref TStateMachine stateMachine);
	public void AwaitUnsafeOnCompleted<TAwaiter, TStateMachine> (ref TAwaiter awaiter, ref TStateMachine stateMachine);
	public void Complete ();
	public static AsyncIteratorMethodBuilder Create ();
	public void MoveNext<TStateMachine> (ref TStateMachine stateMachine);
}

New Type: System.Runtime.CompilerServices.AsyncIteratorStateMachineAttribute

public sealed class AsyncIteratorStateMachineAttribute : System.Runtime.CompilerServices.StateMachineAttribute {
	// constructors
	public AsyncIteratorStateMachineAttribute (System.Type stateMachineType);
}

New Type: System.Runtime.CompilerServices.ConfiguredAsyncDisposable

public struct ConfiguredAsyncDisposable {
	// methods
	public ConfiguredValueTaskAwaitable DisposeAsync ();
}

New Type: System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1

public struct ConfiguredCancelableAsyncEnumerable`1 {
	// methods
	public System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable<T> ConfigureAwait (bool continueOnCapturedContext);
	public System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable<Enumerator[T> GetAsyncEnumerator ();
	public System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable<T> WithCancellation (System.Threading.CancellationToken cancellationToken);

	// inner types
	public struct Enumerator {
		// properties
		public T Current { get; }
		// methods
		public ConfiguredValueTaskAwaitable DisposeAsync ();
		public System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<bool> MoveNextAsync ();
	}
}

New Type: System.Runtime.CompilerServices.EnumeratorCancellationAttribute

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

New Type: System.Runtime.CompilerServices.SwitchExpressionException

[Serializable]
public sealed class SwitchExpressionException : System.InvalidOperationException, System.Runtime.Serialization.ISerializable {
	// constructors
	public SwitchExpressionException ();
	public SwitchExpressionException (System.Exception innerException);
	public SwitchExpressionException (object unmatchedValue);
	public SwitchExpressionException (string message);
	public SwitchExpressionException (string message, System.Exception innerException);
	// properties
	public override string Message { get; }
	public object UnmatchedValue { get; }
	// methods
	public override void GetObjectData (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);
}

Namespace System.Runtime.InteropServices

Type Changed: System.Runtime.InteropServices.Marshal

Added method:

public static IntPtr StringToCoTaskMemUTF8 (string s);

Namespace System.Runtime.Serialization

New Type: System.Runtime.Serialization.SerializationEventHandler

public sealed delegate SerializationEventHandler : System.MulticastDelegate, System.ICloneable, ISerializable {
	// constructors
	public SerializationEventHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (StreamingContext context, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (StreamingContext context);
}

Namespace System.Security.Cryptography

Type Changed: System.Security.Cryptography.AsymmetricAlgorithm

Added methods:

public virtual byte[] ExportEncryptedPkcs8PrivateKey (System.ReadOnlySpan<byte> passwordBytes, PbeParameters pbeParameters);
public virtual byte[] ExportEncryptedPkcs8PrivateKey (System.ReadOnlySpan<char> password, PbeParameters pbeParameters);
public virtual byte[] ExportPkcs8PrivateKey ();
public virtual byte[] ExportSubjectPublicKeyInfo ();
public virtual void ImportEncryptedPkcs8PrivateKey (System.ReadOnlySpan<byte> passwordBytes, System.ReadOnlySpan<byte> source, out int bytesRead);
public virtual void ImportEncryptedPkcs8PrivateKey (System.ReadOnlySpan<char> password, System.ReadOnlySpan<byte> source, out int bytesRead);
public virtual void ImportPkcs8PrivateKey (System.ReadOnlySpan<byte> source, out int bytesRead);
public virtual void ImportSubjectPublicKeyInfo (System.ReadOnlySpan<byte> source, out int bytesRead);
public virtual bool TryExportEncryptedPkcs8PrivateKey (System.ReadOnlySpan<byte> passwordBytes, PbeParameters pbeParameters, System.Span<byte> destination, out int bytesWritten);
public virtual bool TryExportEncryptedPkcs8PrivateKey (System.ReadOnlySpan<char> password, PbeParameters pbeParameters, System.Span<byte> destination, out int bytesWritten);
public virtual bool TryExportPkcs8PrivateKey (System.Span<byte> destination, out int bytesWritten);
public virtual bool TryExportSubjectPublicKeyInfo (System.Span<byte> destination, out int bytesWritten);

Type Changed: System.Security.Cryptography.CryptoStream

Added constructor:

public CryptoStream (System.IO.Stream stream, ICryptoTransform transform, CryptoStreamMode mode, bool leaveOpen);

Added interface:

System.IAsyncDisposable

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);
public override int EndRead (System.IAsyncResult asyncResult);
public override void EndWrite (System.IAsyncResult asyncResult);
public override int ReadByte ();
public override void WriteByte (byte value);

Type Changed: System.Security.Cryptography.DSA

Added methods:

public static DSA Create (int keySizeInBits);
public static DSA Create (DSAParameters parameters);
public virtual bool TryCreateSignature (System.ReadOnlySpan<byte> hash, System.Span<byte> destination, out int bytesWritten);
protected virtual bool TryHashData (System.ReadOnlySpan<byte> data, System.Span<byte> destination, HashAlgorithmName hashAlgorithm, out int bytesWritten);
public virtual bool TrySignData (System.ReadOnlySpan<byte> data, System.Span<byte> destination, HashAlgorithmName hashAlgorithm, out int bytesWritten);
public virtual bool VerifyData (System.ReadOnlySpan<byte> data, System.ReadOnlySpan<byte> signature, HashAlgorithmName hashAlgorithm);
public virtual bool VerifySignature (System.ReadOnlySpan<byte> hash, System.ReadOnlySpan<byte> signature);

Type Changed: System.Security.Cryptography.HashAlgorithm

Added methods:

protected virtual void HashCore (System.ReadOnlySpan<byte> source);
public bool TryComputeHash (System.ReadOnlySpan<byte> source, System.Span<byte> destination, out int bytesWritten);
protected virtual bool TryHashFinal (System.Span<byte> destination, out int bytesWritten);

Type Changed: System.Security.Cryptography.RSA

Added methods:

public static RSA Create (int keySizeInBits);
public static RSA Create (RSAParameters parameters);
public virtual byte[] ExportRSAPrivateKey ();
public virtual byte[] ExportRSAPublicKey ();
public virtual void ImportRSAPrivateKey (System.ReadOnlySpan<byte> source, out int bytesRead);
public virtual void ImportRSAPublicKey (System.ReadOnlySpan<byte> source, out int bytesRead);
public virtual bool TryDecrypt (System.ReadOnlySpan<byte> data, System.Span<byte> destination, RSAEncryptionPadding padding, out int bytesWritten);
public virtual bool TryEncrypt (System.ReadOnlySpan<byte> data, System.Span<byte> destination, RSAEncryptionPadding padding, out int bytesWritten);
public virtual bool TryExportRSAPrivateKey (System.Span<byte> destination, out int bytesWritten);
public virtual bool TryExportRSAPublicKey (System.Span<byte> destination, out int bytesWritten);
protected virtual bool TryHashData (System.ReadOnlySpan<byte> data, System.Span<byte> destination, HashAlgorithmName hashAlgorithm, out int bytesWritten);
public virtual bool TrySignData (System.ReadOnlySpan<byte> data, System.Span<byte> destination, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding, out int bytesWritten);
public virtual bool TrySignHash (System.ReadOnlySpan<byte> hash, System.Span<byte> destination, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding, out int bytesWritten);
public virtual bool VerifyData (System.ReadOnlySpan<byte> data, System.ReadOnlySpan<byte> signature, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding);
public virtual bool VerifyHash (System.ReadOnlySpan<byte> hash, System.ReadOnlySpan<byte> signature, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding);

Type Changed: System.Security.Cryptography.RandomNumberGenerator

Added methods:

public static void Fill (System.Span<byte> data);
public virtual void GetBytes (System.Span<byte> data);
public static int GetInt32 (int toExclusive);
public static int GetInt32 (int fromInclusive, int toExclusive);
public virtual void GetNonZeroBytes (System.Span<byte> data);

Type Changed: System.Security.Cryptography.Rfc2898DeriveBytes

Added constructors:

public Rfc2898DeriveBytes (byte[] password, byte[] salt, int iterations, HashAlgorithmName hashAlgorithm);
public Rfc2898DeriveBytes (string password, byte[] salt, int iterations, HashAlgorithmName hashAlgorithm);
public Rfc2898DeriveBytes (string password, int saltSize, int iterations, HashAlgorithmName hashAlgorithm);

Added property:

public HashAlgorithmName HashAlgorithm { get; }

New Type: System.Security.Cryptography.CryptographicOperations

public static class CryptographicOperations {
	// methods
	public static bool FixedTimeEquals (System.ReadOnlySpan<byte> left, System.ReadOnlySpan<byte> right);
	public static void ZeroMemory (System.Span<byte> buffer);
}

New Type: System.Security.Cryptography.PbeEncryptionAlgorithm

[Serializable]
public enum PbeEncryptionAlgorithm {
	Aes128Cbc = 1,
	Aes192Cbc = 2,
	Aes256Cbc = 3,
	TripleDes3KeyPkcs12 = 4,
	Unknown = 0,
}

New Type: System.Security.Cryptography.PbeParameters

public sealed class PbeParameters {
	// constructors
	public PbeParameters (PbeEncryptionAlgorithm encryptionAlgorithm, HashAlgorithmName hashAlgorithm, int iterationCount);
	// properties
	public PbeEncryptionAlgorithm EncryptionAlgorithm { get; }
	public HashAlgorithmName HashAlgorithm { get; }
	public int IterationCount { get; }
}

Namespace System.Security.Policy

Type Changed: System.Security.Policy.Evidence

Added constructor:

public Evidence (EvidenceBase[] hostEvidence, EvidenceBase[] assemblyEvidence);

Namespace System.Text

Type Changed: System.Text.Encoding

Added methods:

public virtual int GetByteCount (System.ReadOnlySpan<char> chars);
public virtual int GetBytes (System.ReadOnlySpan<char> chars, System.Span<byte> bytes);
public byte[] GetBytes (string s, int index, int count);
public virtual int GetCharCount (System.ReadOnlySpan<byte> bytes);

Namespace System.Threading

Type Changed: System.Threading.CancellationToken

Added method:

public CancellationTokenRegistration Register (System.Action<object> callback, object state, bool useSynchronizationContext, bool useExecutionContext);

Type Changed: System.Threading.CancellationTokenRegistration

Added interface:

System.IAsyncDisposable

Added methods:

public virtual Tasks.ValueTask DisposeAsync ();
public bool Unregister ();

Type Changed: System.Threading.Interlocked

Added method:

public static void MemoryBarrierProcessWide ();

Type Changed: System.Threading.SpinWait

Added method:

public void SpinOnce (int sleep1Threshold);

Type Changed: System.Threading.Thread

Added method:

public static int GetCurrentProcessorId ();

Type Changed: System.Threading.ThreadPool

Added methods:

public static bool QueueUserWorkItem<TState> (System.Action<TState> callBack, TState state, bool preferLocal);
public static bool UnsafeQueueUserWorkItem<TState> (System.Action<TState> callBack, TState state, bool preferLocal);

Type Changed: System.Threading.Timer

Added interface:

System.IAsyncDisposable

Added method:

public virtual Tasks.ValueTask DisposeAsync ();

Namespace System.Threading.Tasks

New Type: System.Threading.Tasks.TaskAsyncEnumerableExtensions

public static class TaskAsyncEnumerableExtensions {
	// methods
	public static System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable<T> ConfigureAwait<T> (this System.Collections.Generic.IAsyncEnumerable<T> source, bool continueOnCapturedContext);
	public static System.Runtime.CompilerServices.ConfiguredAsyncDisposable ConfigureAwait (this System.IAsyncDisposable source, bool continueOnCapturedContext);
	public static System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable<T> WithCancellation<T> (this System.Collections.Generic.IAsyncEnumerable<T> source, System.Threading.CancellationToken cancellationToken);
}

Namespace System.Threading.Tasks.Sources

New Type: System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1

public struct ManualResetValueTaskSourceCore`1 {
	// properties
	public bool RunContinuationsAsynchronously { get; set; }
	public short Version { get; }
	// methods
	public TResult GetResult (short token);
	public ValueTaskSourceStatus GetStatus (short token);
	public void OnCompleted (System.Action<object> continuation, object state, short token, ValueTaskSourceOnCompletedFlags flags);
	public void Reset ();
	public void SetException (System.Exception error);
	public void SetResult (TResult result);
}

New Namespace System.IO.Enumeration

New Type: System.IO.Enumeration.FileSystemEntry

public struct FileSystemEntry {
	// properties
	public System.IO.FileAttributes Attributes { get; }
	public System.DateTimeOffset CreationTimeUtc { get; }
	public System.ReadOnlySpan<char> Directory { get; }
	public System.ReadOnlySpan<char> FileName { get; }
	public bool IsDirectory { get; }
	public bool IsHidden { get; }
	public System.DateTimeOffset LastAccessTimeUtc { get; }
	public System.DateTimeOffset LastWriteTimeUtc { get; }
	public long Length { get; }
	public System.ReadOnlySpan<char> OriginalRootDirectory { get; }
	public System.ReadOnlySpan<char> RootDirectory { get; }
	// methods
	public System.IO.FileSystemInfo ToFileSystemInfo ();
	public string ToFullPath ();
	public string ToSpecifiedFullPath ();

	// inner types
	public struct <_fileNameBuffer>e__FixedBuffer {
		// fields
		public char FixedElementField;
	}
}

New Type: System.IO.Enumeration.FileSystemEnumerable`1

public class FileSystemEnumerable`1 : System.Collections.Generic.IEnumerable<TResult>, System.Collections.IEnumerable {
	// constructors
	public FileSystemEnumerable`1 (string directory, System.IO.Enumeration.FileSystemEnumerable<FindTransform[TResult> transform, ptions options);
	// properties
	public System.IO.Enumeration.FileSystemEnumerable<FindPredicate[TResult> ShouldIncludePredicate { get; set; }
	public System.IO.Enumeration.FileSystemEnumerable<FindPredicate[TResult> ShouldRecursePredicate { get; set; }
	// methods
	public virtual System.Collections.Generic.IEnumerator<TResult> GetEnumerator ();

	// inner types
	public sealed delegate FindPredicate : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
		// constructors
		public FileSystemEnumerable`1.FindPredicate (object object, IntPtr method);
		// methods
		public virtual System.IAsyncResult BeginInvoke (ref FileSystemEntry entry, System.AsyncCallback callback, object object);
		public virtual bool EndInvoke (ref FileSystemEntry entry, System.IAsyncResult result);
		public virtual bool Invoke (ref FileSystemEntry entry);
	}
	public sealed delegate FindTransform : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
		// constructors
		public FileSystemEnumerable`1.FindTransform (object object, IntPtr method);
		// methods
		public virtual System.IAsyncResult BeginInvoke (ref FileSystemEntry entry, System.AsyncCallback callback, object object);
		public virtual TResult EndInvoke (ref FileSystemEntry entry, System.IAsyncResult result);
		public virtual TResult Invoke (ref FileSystemEntry entry);
	}
}

New Type: System.IO.Enumeration.FileSystemEnumerator`1

public abstract class FileSystemEnumerator`1 : System.Runtime.ConstrainedExecution.CriticalFinalizerObject, System.Collections.Generic.IEnumerator<TResult>, System.Collections.IEnumerator, System.IDisposable {
	// constructors
	public FileSystemEnumerator`1 (string directory, ptions options);
	// properties
	public virtual TResult Current { get; }
	// methods
	protected virtual bool ContinueOnError (int error);
	public virtual void Dispose ();
	protected virtual void Dispose (bool disposing);
	public virtual bool MoveNext ();
	protected virtual void OnDirectoryFinished (System.ReadOnlySpan<char> directory);
	public virtual void Reset ();
	protected virtual bool ShouldIncludeEntry (ref FileSystemEntry entry);
	protected virtual bool ShouldRecurseIntoEntry (ref FileSystemEntry entry);
	protected virtual TResult TransformEntry (ref FileSystemEntry entry);
	protected override void ~FileSystemEnumerator ();
}

New Type: System.IO.Enumeration.FileSystemName

public static class FileSystemName {
	// methods
	public static bool MatchesSimpleExpression (System.ReadOnlySpan<char> expression, System.ReadOnlySpan<char> name, bool ignoreCase);
	public static bool MatchesWin32Expression (System.ReadOnlySpan<char> expression, System.ReadOnlySpan<char> name, bool ignoreCase);
	public static string TranslateWin32Expression (string expression);
}

OpenTK.dll

Removed Namespace System.Drawing

Removed Type System.Drawing.Color

Removed Type System.Drawing.ColorConverter

Removed Type System.Drawing.KnownColor

Removed Type System.Drawing.SystemColors

System.Core.dll

Namespace System.IO.MemoryMappedFiles

Type Changed: System.IO.MemoryMappedFiles.MemoryMappedViewStream

Added interface:

System.IAsyncDisposable

Namespace System.IO.Pipes

Type Changed: System.IO.Pipes.AnonymousPipeClientStream

Added interface:

System.IAsyncDisposable

Type Changed: System.IO.Pipes.AnonymousPipeServerStream

Added interface:

System.IAsyncDisposable

Type Changed: System.IO.Pipes.NamedPipeClientStream

Added interface:

System.IAsyncDisposable

Type Changed: System.IO.Pipes.NamedPipeServerStream

Added interface:

System.IAsyncDisposable

Type Changed: System.IO.Pipes.PipeStream

Added interface:

System.IAsyncDisposable

Namespace System.Runtime.InteropServices

Type Changed: System.Runtime.InteropServices.ComAwareEventInfo

Removed interface:

_MemberInfo

Namespace System.Security.Cryptography

Type Changed: System.Security.Cryptography.ECDsa

Added methods:

public virtual byte[] ExportECPrivateKey ();
public virtual void ImportECPrivateKey (System.ReadOnlySpan<byte> source, out int bytesRead);
public virtual bool TryExportECPrivateKey (System.Span<byte> destination, out int bytesWritten);
protected virtual bool TryHashData (System.ReadOnlySpan<byte> data, System.Span<byte> destination, HashAlgorithmName hashAlgorithm, out int bytesWritten);
public virtual bool TrySignData (System.ReadOnlySpan<byte> data, System.Span<byte> destination, HashAlgorithmName hashAlgorithm, out int bytesWritten);
public virtual bool TrySignHash (System.ReadOnlySpan<byte> hash, System.Span<byte> destination, out int bytesWritten);
public virtual bool VerifyData (System.ReadOnlySpan<byte> data, System.ReadOnlySpan<byte> signature, HashAlgorithmName hashAlgorithm);
public virtual bool VerifyHash (System.ReadOnlySpan<byte> hash, System.ReadOnlySpan<byte> signature);

Type Changed: System.Security.Cryptography.IncrementalHash

Added methods:

public void AppendData (System.ReadOnlySpan<byte> data);
public bool TryGetHashAndReset (System.Span<byte> destination, out int bytesWritten);

New Type: System.Security.Cryptography.ECDiffieHellman

public abstract class ECDiffieHellman : System.Security.Cryptography.AsymmetricAlgorithm, System.IDisposable {
	// constructors
	protected ECDiffieHellman ();
	// properties
	public override string KeyExchangeAlgorithm { get; }
	public virtual ECDiffieHellmanPublicKey PublicKey { get; }
	public override string SignatureAlgorithm { get; }
	// methods
	public static ECDiffieHellman Create ();
	public static ECDiffieHellman Create (ECCurve curve);
	public static ECDiffieHellman Create (ECParameters parameters);
	public static ECDiffieHellman Create (string algorithm);
	public byte[] DeriveKeyFromHash (ECDiffieHellmanPublicKey otherPartyPublicKey, HashAlgorithmName hashAlgorithm);
	public virtual byte[] DeriveKeyFromHash (ECDiffieHellmanPublicKey otherPartyPublicKey, HashAlgorithmName hashAlgorithm, byte[] secretPrepend, byte[] secretAppend);
	public byte[] DeriveKeyFromHmac (ECDiffieHellmanPublicKey otherPartyPublicKey, HashAlgorithmName hashAlgorithm, byte[] hmacKey);
	public virtual byte[] DeriveKeyFromHmac (ECDiffieHellmanPublicKey otherPartyPublicKey, HashAlgorithmName hashAlgorithm, byte[] hmacKey, byte[] secretPrepend, byte[] secretAppend);
	public virtual byte[] DeriveKeyMaterial (ECDiffieHellmanPublicKey otherPartyPublicKey);
	public virtual byte[] DeriveKeyTls (ECDiffieHellmanPublicKey otherPartyPublicKey, byte[] prfLabel, byte[] prfSeed);
	public virtual byte[] ExportECPrivateKey ();
	public virtual ECParameters ExportExplicitParameters (bool includePrivateParameters);
	public virtual ECParameters ExportParameters (bool includePrivateParameters);
	public virtual void GenerateKey (ECCurve curve);
	public virtual void ImportECPrivateKey (System.ReadOnlySpan<byte> source, out int bytesRead);
	public virtual void ImportParameters (ECParameters parameters);
	public virtual bool TryExportECPrivateKey (System.Span<byte> destination, out int bytesWritten);
}

Namespace System.Security.Cryptography.X509Certificates

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

Added method:

public static X509Certificate2 CopyWithPrivateKey (this X509Certificate2 certificate, System.Security.Cryptography.ECDsa privateKey);

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

Added method:

public static X509Certificate2 CopyWithPrivateKey (this X509Certificate2 certificate, System.Security.Cryptography.RSA privateKey);

New Namespace System.Net.Sockets

New Type: System.Net.Sockets.UnixDomainSocketEndPoint

public sealed class UnixDomainSocketEndPoint : System.Net.EndPoint {
	// constructors
	public UnixDomainSocketEndPoint (string path);
	// properties
	public override AddressFamily AddressFamily { get; }
	// methods
	public override System.Net.EndPoint Create (System.Net.SocketAddress socketAddress);
	public override System.Net.SocketAddress Serialize ();
	public override string ToString ();
}

New Namespace System.Reflection

New Type: System.Reflection.DispatchProxy

public abstract class DispatchProxy {
	// constructors
	protected DispatchProxy ();
	// methods
	public static T Create<T, TProxy> ();
	protected virtual object Invoke (MethodInfo targetMethod, object[] args);
}

System.Data.dll

Namespace System.Data.Common

New Type: System.Data.Common.DbProviderFactories

public static class DbProviderFactories {
	// methods
	public static DbProviderFactory GetFactory (DbConnection connection);
	public static DbProviderFactory GetFactory (System.Data.DataRow providerRow);
	public static DbProviderFactory GetFactory (string providerInvariantName);
	public static System.Data.DataTable GetFactoryClasses ();
	public static System.Collections.Generic.IEnumerable<string> GetProviderInvariantNames ();
	public static void RegisterFactory (string providerInvariantName, DbProviderFactory factory);
	public static void RegisterFactory (string providerInvariantName, string factoryTypeAssemblyQualifiedName);
	public static void RegisterFactory (string providerInvariantName, System.Type providerFactoryClass);
	public static bool TryGetFactory (string providerInvariantName, out DbProviderFactory factory);
	public static bool UnregisterFactory (string providerInvariantName);
}

Namespace System.Data.SqlClient

Type Changed: System.Data.SqlClient.SqlConnection

Added property:

public string AccessToken { get; set; }

System.IO.Compression.dll

Namespace System.IO.Compression

New Type: System.IO.Compression.BrotliDecoder

public struct BrotliDecoder, System.IDisposable {
	// methods
	public System.Buffers.OperationStatus Decompress (System.ReadOnlySpan<byte> source, System.Span<byte> destination, out int bytesConsumed, out int bytesWritten);
	public virtual void Dispose ();
	public static bool TryDecompress (System.ReadOnlySpan<byte> source, System.Span<byte> destination, out int bytesWritten);
}

New Type: System.IO.Compression.BrotliEncoder

public struct BrotliEncoder, System.IDisposable {
	// constructors
	public BrotliEncoder (int quality, int window);
	// methods
	public System.Buffers.OperationStatus Compress (System.ReadOnlySpan<byte> source, System.Span<byte> destination, out int bytesConsumed, out int bytesWritten, bool isFinalBlock);
	public virtual void Dispose ();
	public System.Buffers.OperationStatus Flush (System.Span<byte> destination, out int bytesWritten);
	public static int GetMaxCompressedLength (int length);
	public static bool TryCompress (System.ReadOnlySpan<byte> source, System.Span<byte> destination, out int bytesWritten);
	public static bool TryCompress (System.ReadOnlySpan<byte> source, System.Span<byte> destination, out int bytesWritten, int quality, int window);
}

New Type: System.IO.Compression.BrotliStream

public sealed class BrotliStream : System.IO.Stream, System.IAsyncDisposable, System.IDisposable {
	// constructors
	public BrotliStream (System.IO.Stream stream, CompressionLevel compressionLevel);
	public BrotliStream (System.IO.Stream stream, CompressionMode mode);
	public BrotliStream (System.IO.Stream stream, CompressionLevel compressionLevel, bool leaveOpen);
	public BrotliStream (System.IO.Stream stream, CompressionMode mode, bool leaveOpen);
	// properties
	public System.IO.Stream BaseStream { get; }
	public override bool CanRead { get; }
	public override bool CanSeek { get; }
	public override bool CanWrite { get; }
	public override long Length { get; }
	public override long Position { get; set; }
	// methods
	public override System.IAsyncResult BeginRead (byte[] buffer, int offset, int count, System.AsyncCallback asyncCallback, object asyncState);
	public override System.IAsyncResult BeginWrite (byte[] buffer, int offset, int count, System.AsyncCallback asyncCallback, object asyncState);
	protected override void Dispose (bool disposing);
	public override int EndRead (System.IAsyncResult asyncResult);
	public override void EndWrite (System.IAsyncResult asyncResult);
	public override void Flush ();
	public override System.Threading.Tasks.Task FlushAsync (System.Threading.CancellationToken cancellationToken);
	public override int Read (System.Span<byte> buffer);
	public override int Read (byte[] buffer, int offset, int count);
	public override System.Threading.Tasks.ValueTask<int> ReadAsync (System.Memory<byte> buffer, System.Threading.CancellationToken cancellationToken);
	public override System.Threading.Tasks.Task<int> ReadAsync (byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken);
	public override long Seek (long offset, System.IO.SeekOrigin origin);
	public override void SetLength (long value);
	public override void Write (System.ReadOnlySpan<byte> buffer);
	public override void Write (byte[] buffer, int offset, int count);
	public override System.Threading.Tasks.ValueTask WriteAsync (System.ReadOnlyMemory<byte> buffer, System.Threading.CancellationToken cancellationToken);
	public override System.Threading.Tasks.Task WriteAsync (byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken);
}

System.dll

Namespace System.CodeDom.Compiler

Type Changed: System.CodeDom.Compiler.IndentedTextWriter

Added interface:

System.IAsyncDisposable

Namespace System.Collections.Generic

Removed Type System.Collections.Generic.Queue`1

Removed Type System.Collections.Generic.Stack`1

Namespace System.ComponentModel

Type Changed: System.ComponentModel.BaseNumberConverter

Removed constructor:

protected BaseNumberConverter ();

Namespace System.Diagnostics

Type Changed: System.Diagnostics.ProcessStartInfo

Added properties:

public System.Collections.ObjectModel.Collection<string> ArgumentList { get; }
public System.Text.Encoding StandardInputEncoding { get; set; }

Namespace System.IO.Compression

Type Changed: System.IO.Compression.DeflateStream

Added interface:

System.IAsyncDisposable

Type Changed: System.IO.Compression.GZipStream

Added interface:

System.IAsyncDisposable

Namespace System.Net

Type Changed: System.Net.HttpStatusCode

Added values:

AlreadyReported = 208,
EarlyHints = 103,
FailedDependency = 424,
IMUsed = 226,
InsufficientStorage = 507,
Locked = 423,
LoopDetected = 508,
MisdirectedRequest = 421,
MultiStatus = 207,
NetworkAuthenticationRequired = 511,
NotExtended = 510,
PermanentRedirect = 308,
PreconditionRequired = 428,
Processing = 102,
RequestHeaderFieldsTooLarge = 431,
TooManyRequests = 429,
UnavailableForLegalReasons = 451,
UnprocessableEntity = 422,
VariantAlsoNegotiates = 506,

Type Changed: System.Net.HttpVersion

Added fields:

public static System.Version Unknown;
public static System.Version Version20;

Type Changed: System.Net.HttpWebResponse

Added constructor:

public HttpWebResponse ();

Type Changed: System.Net.IPAddress

Added constructors:

public IPAddress (System.ReadOnlySpan<byte> address);
public IPAddress (System.ReadOnlySpan<byte> address, long scopeid);

Added methods:

public static IPAddress Parse (System.ReadOnlySpan<char> ipSpan);
public bool TryFormat (System.Span<char> destination, out int charsWritten);
public static bool TryParse (System.ReadOnlySpan<char> ipSpan, out IPAddress address);
public bool TryWriteBytes (System.Span<byte> destination, out int bytesWritten);

Type Changed: System.Net.SecurityProtocolType

Added value:

Tls13 = 12288,

Namespace System.Net.Security

Type Changed: System.Net.Security.AuthenticatedStream

Added interface:

System.IAsyncDisposable

Type Changed: System.Net.Security.NegotiateStream

Added interface:

System.IAsyncDisposable

Type Changed: System.Net.Security.SslStream

Added interface:

System.IAsyncDisposable

Added property:

public SslApplicationProtocol NegotiatedApplicationProtocol { get; }

Namespace System.Net.Sockets

Type Changed: System.Net.Sockets.NetworkStream

Added interface:

System.IAsyncDisposable

Type Changed: System.Net.Sockets.Socket

Added methods:

public int Receive (System.Span<byte> buffer);
public int Receive (System.Span<byte> buffer, SocketFlags socketFlags, out SocketError errorCode);
public int Send (System.ReadOnlySpan<byte> buffer);
public int Send (System.ReadOnlySpan<byte> buffer, SocketFlags socketFlags, out SocketError errorCode);

Type Changed: System.Net.Sockets.SocketAsyncEventArgs

Added property:

public System.Memory<byte> MemoryBuffer { get; }

Added method:

public void SetBuffer (System.Memory<byte> buffer);

Type Changed: System.Net.Sockets.SocketTaskExtensions

Added methods:

public static System.Threading.Tasks.ValueTask<int> ReceiveAsync (this Socket socket, System.Memory<byte> memory, SocketFlags socketFlags, System.Threading.CancellationToken cancellationToken);
public static System.Threading.Tasks.ValueTask<int> SendAsync (this Socket socket, System.ReadOnlyMemory<byte> buffer, SocketFlags socketFlags, System.Threading.CancellationToken cancellationToken);

Namespace System.Security.Authentication

Type Changed: System.Security.Authentication.HashAlgorithmType

Added values:

Sha256 = 32780,
Sha384 = 32781,
Sha512 = 32782,

Type Changed: System.Security.Authentication.SslProtocols

Added value:

Tls13 = 12288,

Namespace System.Security.Cryptography.X509Certificates

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

Removed method:

public override byte[] Export (X509ContentType contentType, string password);

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

Added constructors:

public X509Store (StoreName storeName, StoreLocation storeLocation, OpenFlags openFlags);
public X509Store (string storeName, StoreLocation storeLocation, OpenFlags openFlags);

Added property:

public bool IsOpen { get; }

New Type: System.Security.Cryptography.X509Certificates.CertificateRequest

public sealed class CertificateRequest {
	// constructors
	public CertificateRequest (X500DistinguishedName subjectName, System.Security.Cryptography.ECDsa key, System.Security.Cryptography.HashAlgorithmName hashAlgorithm);
	public CertificateRequest (X500DistinguishedName subjectName, PublicKey publicKey, System.Security.Cryptography.HashAlgorithmName hashAlgorithm);
	public CertificateRequest (string subjectName, System.Security.Cryptography.ECDsa key, System.Security.Cryptography.HashAlgorithmName hashAlgorithm);
	public CertificateRequest (X500DistinguishedName subjectName, System.Security.Cryptography.RSA key, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding);
	public CertificateRequest (string subjectName, System.Security.Cryptography.RSA key, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding);
	// properties
	public System.Collections.ObjectModel.Collection<X509Extension> CertificateExtensions { get; }
	public System.Security.Cryptography.HashAlgorithmName HashAlgorithm { get; }
	public PublicKey PublicKey { get; }
	public X500DistinguishedName SubjectName { get; }
	// methods
	public X509Certificate2 Create (X509Certificate2 issuerCertificate, System.DateTimeOffset notBefore, System.DateTimeOffset notAfter, byte[] serialNumber);
	public X509Certificate2 Create (X500DistinguishedName issuerName, X509SignatureGenerator generator, System.DateTimeOffset notBefore, System.DateTimeOffset notAfter, byte[] serialNumber);
	public X509Certificate2 CreateSelfSigned (System.DateTimeOffset notBefore, System.DateTimeOffset notAfter);
	public byte[] CreateSigningRequest ();
	public byte[] CreateSigningRequest (X509SignatureGenerator signatureGenerator);
}

New Type: System.Security.Cryptography.X509Certificates.SubjectAlternativeNameBuilder

public sealed class SubjectAlternativeNameBuilder {
	// constructors
	public SubjectAlternativeNameBuilder ();
	// methods
	public void AddDnsName (string dnsName);
	public void AddEmailAddress (string emailAddress);
	public void AddIpAddress (System.Net.IPAddress ipAddress);
	public void AddUri (System.Uri uri);
	public void AddUserPrincipalName (string upn);
	public X509Extension Build (bool critical);
}

New Type: System.Security.Cryptography.X509Certificates.X509SignatureGenerator

public abstract class X509SignatureGenerator {
	// constructors
	protected X509SignatureGenerator ();
	// properties
	public PublicKey PublicKey { get; }
	// methods
	protected virtual PublicKey BuildPublicKey ();
	public static X509SignatureGenerator CreateForECDsa (System.Security.Cryptography.ECDsa key);
	public static X509SignatureGenerator CreateForRSA (System.Security.Cryptography.RSA key, System.Security.Cryptography.RSASignaturePadding signaturePadding);
	public virtual byte[] GetSignatureAlgorithmIdentifier (System.Security.Cryptography.HashAlgorithmName hashAlgorithm);
	public virtual byte[] SignData (byte[] data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm);
}

Removed Namespace System.IO.Enumeration

Removed Type System.IO.Enumeration.FileSystemName

System.ServiceModel.dll

Namespace System.Collections.Generic

Type Changed: System.Collections.Generic.SynchronizedCollection`1

Removed constructor:

public SynchronizedCollection`1 (object syncRoot, System.Collections.Generic.List<T> list, bool makeCopy);

Type Changed: System.Collections.Generic.SynchronizedReadOnlyCollection`1

Removed constructor:

public SynchronizedReadOnlyCollection`1 (object sync_root, System.Collections.Generic.List<T> list, bool make_copy);

System.Xml.dll

Namespace System.Xml.Serialization

Type Changed: System.Xml.Serialization.XmlSchemaImporter

Modified base type:

-System.Object
+System.Xml.Serialization.SchemaImporter

New Type: System.Xml.Serialization.SchemaImporter

public abstract class SchemaImporter {
	// constructors
	protected SchemaImporter ();
}

Xamarin.Mac.dll

Namespace AppKit

Type Changed: AppKit.NSGridView

Obsoleted methods:

 [Obsolete ("You should use either 'NSGridView.Create(NSView [][] rowsAndColumns)' or 'NSGridView.Create(NSView [,] rowsAndColumns)'.")]
 public static NSGridView Create (NSView[] rows);

Added methods:

public static NSGridView Create (NSView[0...,0...] rowsAndColumns);
public static NSGridView Create (NSView[][] rowsAndColumns);

Type Changed: AppKit.NSTabView

Added property:

public virtual Foundation.NSObject WeakDelegate { get; set; }

Type Changed: AppKit.NSView

Added method:

public void SortSubviews (System.Func<NSView,AppKit.NSView,Foundation.NSComparisonResult> comparer);

Namespace Compression

Type Changed: Compression.CompressionStream

Added interface:

System.IAsyncDisposable

Namespace CoreGraphics

Type Changed: CoreGraphics.CGPattern

Modified base type:

-System.Object
+CoreFoundation.NativeObject

Removed property:

public virtual IntPtr Handle { get; }

Removed methods:

public virtual void Dispose ();
protected virtual void Dispose (bool disposing);
protected override void ~CGPattern ();

Added methods:

protected override void Release ();
protected override void Retain ();

Namespace Foundation

Type Changed: Foundation.NSArray

Added methods:

public static NSArray FromNSObjects<T> (T[0...,0...] items);
public static NSArray FromNSObjects<T> (T[][] items);

Type Changed: Foundation.NSDataDetector

Added constructors:

public NSDataDetector (NSTextCheckingType options, out NSError error);
public NSDataDetector (NSTextCheckingTypes options, out NSError error);

Added method:

public static NSDataDetector Create (NSTextCheckingType checkingTypes, out NSError error);

Type Changed: Foundation.NSRegularExpression

Obsoleted methods:

 [Obsolete ("Use 'GetMatches2' instead, this method has the wrong return type.")]
 public virtual NSString[] GetMatches (NSString str, NSMatchingOptions options, NSRange range);

Added methods:

public static NSRegularExpression Create (NSString pattern, NSRegularExpressionOptions options, out NSError error);
public NSTextCheckingResult[] GetMatches2 (NSString str, NSMatchingOptions options, NSRange range);

Type Changed: Foundation.NSRegularExpressionOptions

Added value:

UseUnixLineSeparators = 32,

Type Changed: Foundation.NSUrlRequestNetworkServiceType

Modified fields:

-ResponsiveData = 5
+ResponsiveData = 6

Type Changed: Foundation.NSUrlSessionHandler

Added properties:

public bool AllowsCellularAccess { get; set; }
public NSUrlSessionHandlerTrustOverrideCallback TrustOverride { get; set; }

New Type: Foundation.NSUrlSessionHandlerTrustOverrideCallback

public sealed delegate NSUrlSessionHandlerTrustOverrideCallback : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public NSUrlSessionHandlerTrustOverrideCallback (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (NSUrlSessionHandler sender, Security.SecTrust trust, System.AsyncCallback callback, object object);
	public virtual bool EndInvoke (System.IAsyncResult result);
	public virtual bool Invoke (NSUrlSessionHandler sender, Security.SecTrust trust);
}

Namespace Metal

Type Changed: Metal.IMTLDevice

Obsoleted methods:

 [Obsolete ("Use the overload that take a 'DispatchData' instead.")]
 public virtual IMTLLibrary CreateLibrary (Foundation.NSObject data, out Foundation.NSError error);

Type Changed: Metal.MTLDevice_Extensions

Obsoleted methods:

 [Obsolete ("Use the overload that takes an IntPtr instead. The 'data' parameter must be page-aligned and allocated using vm_allocate or mmap, which won't be the case for managed arrays, so this method will always fail.")]
 public static IMTLBuffer CreateBufferNoCopy<T> (this IMTLDevice This, T[] data, MTLResourceOptions options, MTLDeallocator deallocator);
 [Obsolete ("Use 'CreateDefaultLibrary' instead.")]
 public static IMTLLibrary CreateLibrary (this IMTLDevice This, Foundation.NSBundle bundle, out Foundation.NSError error);

Added methods:

public static IMTLLibrary CreateDefaultLibrary (this IMTLDevice This, Foundation.NSBundle bundle, out Foundation.NSError error);
public static IMTLLibrary CreateLibrary (this IMTLDevice This, CoreFoundation.DispatchData data, out Foundation.NSError error);
public static System.Threading.Tasks.Task<IMTLLibrary> CreateLibraryAsync (this IMTLDevice This, string source, MTLCompileOptions options);

Type Changed: Metal.MTLFunctionConstantValues

Added constructor:

public MTLFunctionConstantValues ();

Type Changed: Metal.MTLLibrary_Extensions

Added method:

public static System.Threading.Tasks.Task<IMTLFunction> CreateFunctionAsync (this IMTLLibrary This, string name, MTLFunctionConstantValues constantValues);

Namespace ObjCRuntime

Type Changed: ObjCRuntime.Class

Added interface:

System.IEquatable<Class>

Added methods:

public virtual bool Equals (Class right);
public override bool Equals (object right);
public override int GetHashCode ();

Type Changed: ObjCRuntime.Constants

Modified fields:

-public const string Version = "5.10.0";
+public const string Version = "5.16.0";

Removed Namespace System.Drawing

Removed Type System.Drawing.Point

Removed Type System.Drawing.PointF

Removed Type System.Drawing.Rectangle

Removed Type System.Drawing.RectangleF

Removed Type System.Drawing.Size

Removed Type System.Drawing.SizeF