Xamarin.Mac SDK API diff: 4.4.99 vs 4.5.0

mscorlib.dll

Namespace System

Type Changed: System.BitConverter

Removed method:

public static int ToInt32 (System.ReadOnlySpan<byte> value);

Type Changed: System.Int32

Removed method:

public bool TryFormat (System.Span<char> destination, out int charsWritten, System.ReadOnlySpan<char> format, IFormatProvider provider);

Type Changed: System.String

Removed constructor:

public String (System.ReadOnlySpan<char> value);

Removed method:

public static System.ReadOnlySpan<char> op_Implicit (string value);

Removed Type System.Memory`1

Removed Type System.ReadOnlyMemory`1

Namespace System.Buffers

New Type: System.Buffers.IRetainable

public interface IRetainable {
	// methods
	public virtual bool Release ();
	public virtual void Retain ();
}

New Type: System.Buffers.MemoryHandle

public struct MemoryHandle, System.IDisposable {
	// constructors
	public MemoryHandle (IRetainable retainable, void* pointer, System.Runtime.InteropServices.GCHandle handle);
	// properties
	public bool HasPointer { get; }
	public void* Pointer { get; }
	// methods
	public virtual void Dispose ();
}

Namespace System.IO

Type Changed: System.IO.Stream

Removed methods:

public virtual int Read (System.Span<byte> destination);
public virtual System.Threading.Tasks.ValueTask<int> ReadAsync (System.Memory<byte> destination, System.Threading.CancellationToken cancellationToken);
public virtual void Write (System.ReadOnlySpan<byte> source);

Namespace System.Text

Type Changed: System.Text.Encoding

Removed method:

public string GetString (System.ReadOnlySpan<byte> bytes);

System.dll

Namespace System.IO.Compression

Type Changed: System.IO.Compression.GZipStream

Removed methods:

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

Namespace System.Net

Type Changed: System.Net.HttpWebRequest

Added method:

public override System.Threading.Tasks.Task<System.IO.Stream> GetRequestStreamAsync ();

Namespace System.Net.WebSockets

Type Changed: System.Net.WebSockets.ClientWebSocket

Removed methods:

public override System.Threading.Tasks.ValueTask<ValueWebSocketReceiveResult> ReceiveAsync (System.Memory<byte> buffer, System.Threading.CancellationToken cancellationToken);
public override System.Threading.Tasks.Task SendAsync (System.ReadOnlyMemory<byte> buffer, WebSocketMessageType messageType, bool endOfMessage, System.Threading.CancellationToken cancellationToken);

Type Changed: System.Net.WebSockets.WebSocket

Removed methods:

public static WebSocket CreateFromStream (System.IO.Stream stream, bool isServer, string subProtocol, System.TimeSpan keepAliveInterval, System.Memory<byte> buffer);
public virtual System.Threading.Tasks.ValueTask<ValueWebSocketReceiveResult> ReceiveAsync (System.Memory<byte> buffer, System.Threading.CancellationToken cancellationToken);
public virtual System.Threading.Tasks.Task SendAsync (System.ReadOnlyMemory<byte> buffer, WebSocketMessageType messageType, bool endOfMessage, System.Threading.CancellationToken cancellationToken);

System.Numerics.dll

Namespace System.Numerics

Type Changed: System.Numerics.BigInteger

Removed constructor:

public BigInteger (System.ReadOnlySpan<byte> value, bool isUnsigned, bool isBigEndian);

Removed methods:

public static BigInteger Parse (System.ReadOnlySpan<char> value, System.Globalization.NumberStyles style, System.IFormatProvider provider);
public bool TryFormat (System.Span<char> destination, out int charsWritten, System.ReadOnlySpan<char> format, System.IFormatProvider provider);
public static bool TryParse (System.ReadOnlySpan<char> value, out BigInteger result);
public static bool TryParse (System.ReadOnlySpan<char> value, System.Globalization.NumberStyles style, System.IFormatProvider provider, out BigInteger result);
public bool TryWriteBytes (System.Span<byte> destination, out int bytesWritten, bool isUnsigned, bool isBigEndian);

Xamarin.Mac.dll

Namespace AppKit

Type Changed: AppKit.NSApplication

Obsoleted methods:

 [Obsolete ("Use the 'NextEvent (NSEventMask, NSDate, [NSRunLoopMode|NSString], bool)' overloads instead.")]
 public NSEvent NextEvent (NSEventMask mask, Foundation.NSDate expiration, string mode, bool deqFlag);
 [Obsolete ("Use the 'NextEvent (NSEventMask, NSDate, [NSRunLoopMode|NSString], bool)' overloads instead.")]
 protected virtual NSEvent NextEvent (uint mask, Foundation.NSDate expiration, string mode, bool deqFlag);

Added methods:

public NSEvent NextEvent (NSEventMask mask, Foundation.NSDate expiration, Foundation.NSRunLoopMode runLoopMode, bool deqFlag);
protected virtual NSEvent NextEvent (NSEventMask mask, Foundation.NSDate expiration, Foundation.NSString runLoopMode, bool deqFlag);

New Type: AppKit.INSTokenFieldCellDelegate

public interface INSTokenFieldCellDelegate : ObjCRuntime.INativeObject, System.IDisposable {
}

New Type: AppKit.NSTokenFieldCell

public class NSTokenFieldCell : AppKit.NSTextFieldCell, INSAccessibility, INSAccessibilityElementProtocol, INSUserInterfaceItemIdentification, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public NSTokenFieldCell (Foundation.NSCoder coder);
	protected NSTokenFieldCell (Foundation.NSObjectFlag t);
	protected NSTokenFieldCell (IntPtr handle);
	public NSTokenFieldCell (string aString);
	// properties
	public virtual Foundation.NSCharacterSet CharacterSet { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual double CompletionDelay { get; set; }
	public static Foundation.NSCharacterSet DefaultCharacterSet { get; }
	public static double DefaultCompletionDelay { get; }
	public INSTokenFieldCellDelegate Delegate { get; set; }
	public virtual NSTokenStyle TokenStyle { get; set; }
	public virtual Foundation.NSObject WeakDelegate { get; set; }
	// methods
	protected override void Dispose (bool disposing);
}

New Type: AppKit.NSTokenFieldCellDelegate

public class NSTokenFieldCellDelegate : Foundation.NSObject, INSTokenFieldCellDelegate, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public NSTokenFieldCellDelegate ();
	protected NSTokenFieldCellDelegate (Foundation.NSObjectFlag t);
	protected NSTokenFieldCellDelegate (IntPtr handle);
	// methods
	public virtual Foundation.NSArray GetCompletionStrings (NSTokenFieldCell tokenFieldCell, string substring, nint tokenIndex, ref nint selectedIndex);
	public virtual string GetDisplayString (NSTokenFieldCell tokenFieldCell, Foundation.NSObject representedObject);
	public virtual string GetEditingString (NSTokenFieldCell tokenFieldCell, Foundation.NSObject representedObject);
	public virtual NSMenu GetMenu (NSTokenFieldCell tokenFieldCell, Foundation.NSObject representedObject);
	public virtual Foundation.NSObject GetRepresentedObject (NSTokenFieldCell tokenFieldCell, string editingString);
	public virtual NSTokenStyle GetStyle (NSTokenFieldCell tokenFieldCell, Foundation.NSObject representedObject);
	public virtual bool HasMenu (NSTokenFieldCell tokenFieldCell, Foundation.NSObject representedObject);
	public virtual Foundation.NSObject[] Read (NSTokenFieldCell tokenFieldCell, NSPasteboard pboard);
	public virtual Foundation.NSArray ShouldAddObjects (NSTokenFieldCell tokenFieldCell, Foundation.NSObject[] tokens, uint index);
	public virtual bool WriteRepresentedObjects (NSTokenFieldCell tokenFieldCell, Foundation.NSObject[] objects, NSPasteboard pboard);
}

New Type: AppKit.NSTokenFieldCellDelegate_Extensions

public static class NSTokenFieldCellDelegate_Extensions {
	// methods
	public static Foundation.NSArray GetCompletionStrings (this INSTokenFieldCellDelegate This, NSTokenFieldCell tokenFieldCell, string substring, nint tokenIndex, ref nint selectedIndex);
	public static string GetDisplayString (this INSTokenFieldCellDelegate This, NSTokenFieldCell tokenFieldCell, Foundation.NSObject representedObject);
	public static string GetEditingString (this INSTokenFieldCellDelegate This, NSTokenFieldCell tokenFieldCell, Foundation.NSObject representedObject);
	public static NSMenu GetMenu (this INSTokenFieldCellDelegate This, NSTokenFieldCell tokenFieldCell, Foundation.NSObject representedObject);
	public static Foundation.NSObject GetRepresentedObject (this INSTokenFieldCellDelegate This, NSTokenFieldCell tokenFieldCell, string editingString);
	public static NSTokenStyle GetStyle (this INSTokenFieldCellDelegate This, NSTokenFieldCell tokenFieldCell, Foundation.NSObject representedObject);
	public static bool HasMenu (this INSTokenFieldCellDelegate This, NSTokenFieldCell tokenFieldCell, Foundation.NSObject representedObject);
	public static Foundation.NSObject[] Read (this INSTokenFieldCellDelegate This, NSTokenFieldCell tokenFieldCell, NSPasteboard pboard);
	public static Foundation.NSArray ShouldAddObjects (this INSTokenFieldCellDelegate This, NSTokenFieldCell tokenFieldCell, Foundation.NSObject[] tokens, uint index);
	public static bool WriteRepresentedObjects (this INSTokenFieldCellDelegate This, NSTokenFieldCell tokenFieldCell, Foundation.NSObject[] objects, NSPasteboard pboard);
}

Namespace CoreGraphics

Type Changed: CoreGraphics.CGFont

Added methods:

public CoreText.CTFont ToCTFont (nfloat size);
public CoreText.CTFont ToCTFont (nfloat size, CGAffineTransform matrix);

Namespace Foundation

Type Changed: Foundation.NSUrlProtocol

Obsoleted constructors:

 [Obsolete ("Use the overload that takes an 'INSUrlProtocolClient' instead.")]
 public NSUrlProtocol (NSUrlRequest request, NSCachedUrlResponse cachedResponse, NSUrlProtocolClient client);

Added constructor:

public NSUrlProtocol (NSUrlRequest request, NSCachedUrlResponse cachedResponse, INSUrlProtocolClient client);

Obsoleted properties:

 [Obsolete ("Use 'Client' instead.")]
 public virtual NSObject WeakClient { get; }

Added property:

public virtual INSUrlProtocolClient Client { get; }

Type Changed: Foundation.ProtocolMemberAttribute

Added property:

public System.Type[] ParameterBlockProxy { get; set; }

New Type: Foundation.INSUrlProtocolClient

public interface INSUrlProtocolClient : ObjCRuntime.INativeObject, System.IDisposable {
	// methods
	public virtual void CachedResponseIsValid (NSUrlProtocol protocol, NSCachedUrlResponse cachedResponse);
	public virtual void CancelledAuthenticationChallenge (NSUrlProtocol protocol, NSUrlAuthenticationChallenge challenge);
	public virtual void DataLoaded (NSUrlProtocol protocol, NSData data);
	public virtual void FailedWithError (NSUrlProtocol protocol, NSError error);
	public virtual void FinishedLoading (NSUrlProtocol protocol);
	public virtual void ReceivedAuthenticationChallenge (NSUrlProtocol protocol, NSUrlAuthenticationChallenge challenge);
	public virtual void ReceivedResponse (NSUrlProtocol protocol, NSUrlResponse response, NSUrlCacheStoragePolicy policy);
	public virtual void Redirected (NSUrlProtocol protocol, NSUrlRequest redirectedToEequest, NSUrlResponse redirectResponse);
}

Namespace GameplayKit

Type Changed: GameplayKit.GKNoise

Obsoleted methods:

 [Obsolete ("Use 'GKNoise.Displace' instead.")]
 public virtual void DisplaceX (GKNoise xDisplacementNoise, GKNoise yDisplacementNoise, GKNoise zDisplacementNoise);

Added method:

public virtual void Displace (GKNoise xDisplacementNoise, GKNoise yDisplacementNoise, GKNoise zDisplacementNoise);

Namespace ObjCRuntime

Type Changed: ObjCRuntime.Constants

Modified fields:

-public const string Version = "4.4.99";
+public const string Version = "4.5.0";

Added field:

public static const string libcompression = "/usr/lib/libcompression.dylib";

Namespace SceneKit

Type Changed: SceneKit.SCNHitTest

Added property:

public static Foundation.NSString SearchModeKey { get; }

Type Changed: SceneKit.SCNHitTestOptions

Obsoleted properties:

 [Obsolete ("Use 'SearchMode' instead.")]
 public SCNHitTestSearchMode? OptionSearchMode { get; }

Added property:

public SCNHitTestSearchMode? SearchMode { get; set; }

Type Changed: SceneKit.SCNPhysicsShape

Obsoleted methods:

 [Obsolete ("Use the 'Create' method that takes a 'SCNMatrix4 []'.")]
 public static SCNPhysicsShape Create (SCNPhysicsShape[] shapes, SCNVector3[] transforms);

Added method:

public static SCNPhysicsShape Create (SCNPhysicsShape[] shapes, SCNMatrix4[] transforms);

Namespace Security

Type Changed: Security.SslContext

Added methods:

public string[] GetAlpnProtocols ();
public string[] GetAlpnProtocols (out int error);
public int SetAlpnProtocols (string[] protocols);

Namespace SpriteKit

Type Changed: SpriteKit.SKAction

Obsoleted properties:

 [Obsolete ("Use 'TimingFunction2' instead.")]
 public virtual SKActionTimingFunction TimingFunction { get; set; }

Added property:

public virtual SKActionTimingFunction2 TimingFunction2 { get; set; }

New Type: SpriteKit.SKActionTimingFunction2

public sealed delegate SKActionTimingFunction2 : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public SKActionTimingFunction2 (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (float time, System.AsyncCallback callback, object object);
	public virtual float EndInvoke (System.IAsyncResult result);
	public virtual float Invoke (float time);
}

New Namespace Compression

New Type: Compression.CompressionAlgorithm

[Serializable]
public enum CompressionAlgorithm {
	LZ4 = 256,
	LZ4Raw = 257,
	Lzfse = 2049,
	Lzma = 774,
	Zlib = 517,
}

New Type: Compression.CompressionStream

public class CompressionStream : System.IO.Stream, System.IDisposable {
	// constructors
	public CompressionStream (System.IO.Stream stream, CompressionAlgorithm algorithm);
	public CompressionStream (System.IO.Stream stream, CompressionAlgorithm algorithm, bool leaveOpen);
	public CompressionStream (System.IO.Stream stream, System.IO.Compression.CompressionMode mode, CompressionAlgorithm algorithm);
	public CompressionStream (System.IO.Stream stream, System.IO.Compression.CompressionMode mode, CompressionAlgorithm algorithm, 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[] array, int offset, int count, System.AsyncCallback asyncCallback, object asyncState);
	public override System.Threading.Tasks.Task CopyToAsync (System.IO.Stream destination, int bufferSize, System.Threading.CancellationToken cancellationToken);
	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 (byte[] array, int offset, int count);
	public override System.Threading.Tasks.Task<int> ReadAsync (byte[] array, int offset, int count, System.Threading.CancellationToken cancellationToken);
	public override int ReadByte ();
	public override long Seek (long offset, System.IO.SeekOrigin origin);
	public override void SetLength (long value);
	public override void Write (byte[] array, int offset, int count);
	public override System.Threading.Tasks.Task WriteAsync (byte[] array, int offset, int count, System.Threading.CancellationToken cancellationToken);
}