```diff namespace System.ComponentModel { public abstract class GroupDescription : INotifyPropertyChanged { + public IComparer CustomSort { get; set; } + public SortDescriptionCollection SortDescriptions { get; } + public bool ShouldSerializeSortDescriptions(); } } namespace System.Data.SqlClient { + public enum PoolBlockingPeriod { + AlwaysBlock = 1, + Auto = 0, + NeverBlock = 2, + } public sealed class SqlConnection : DbConnection, ICloneable { + public static TimeSpan ColumnEncryptionKeyCacheTtl { get; set; } + public static bool ColumnEncryptionQueryMetadataCacheEnabled { get; set; } } public sealed class SqlConnectionStringBuilder : DbConnectionStringBuilder { + public PoolBlockingPeriod PoolBlockingPeriod { get; set; } } } namespace System.Diagnostics.Tracing { - public abstract class EventListener : IDisposable { + public class EventListener : IDisposable { - protected EventListener(); + public EventListener(); - protected internal abstract void OnEventWritten(EventWrittenEventArgs eventData); + protected internal virtual void OnEventWritten(EventWrittenEventArgs eventData); + public event EventHandler EventSourceCreated; + public event EventHandler EventWritten; } public class EventSource : IDisposable { + public event EventHandler EventCommandExecuted; } + public class EventSourceCreatedEventArgs : EventArgs { + public EventSourceCreatedEventArgs(); + public EventSource EventSource { get; internal set; } + } } namespace System.Security.Cryptography { + public sealed class AesCng : Aes { + public AesCng(); + public AesCng(string keyName); + public AesCng(string keyName, CngProvider provider); + public AesCng(string keyName, CngProvider provider, CngKeyOpenOptions openOptions); + public override byte[] Key { get; set; } + public override int KeySize { get; set; } + public override ICryptoTransform CreateDecryptor(); + public override ICryptoTransform CreateDecryptor(byte[] rgbKey, byte[] rgbIV); + public override ICryptoTransform CreateEncryptor(); + public override ICryptoTransform CreateEncryptor(byte[] rgbKey, byte[] rgbIV); + public override void GenerateIV(); + public override void GenerateKey(); + } public abstract class DSA : AsymmetricAlgorithm { + protected virtual byte[] HashData(byte[] data, int offset, int count, HashAlgorithmName hashAlgorithm); + protected virtual byte[] HashData(Stream data, HashAlgorithmName hashAlgorithm); + public byte[] SignData(byte[] data, HashAlgorithmName hashAlgorithm); + public virtual byte[] SignData(byte[] data, int offset, int count, HashAlgorithmName hashAlgorithm); + public virtual byte[] SignData(Stream data, HashAlgorithmName hashAlgorithm); + public bool VerifyData(byte[] data, byte[] signature, HashAlgorithmName hashAlgorithm); + public virtual bool VerifyData(byte[] data, int offset, int count, byte[] signature, HashAlgorithmName hashAlgorithm); + public virtual bool VerifyData(Stream data, byte[] signature, HashAlgorithmName hashAlgorithm); } + public sealed class DSACng : DSA { + public DSACng(); + public DSACng(CngKey key); + public DSACng(int keySize); + public CngKey Key { get; private set; } + public override string KeyExchangeAlgorithm { get; } + public override KeySizes[] LegalKeySizes { get; } + public override string SignatureAlgorithm { get; } + public override byte[] CreateSignature(byte[] rgbHash); + public override DSAParameters ExportParameters(bool includePrivateParameters); + public override void ImportParameters(DSAParameters parameters); + public override bool VerifySignature(byte[] rgbHash, byte[] rgbSignature); + } public abstract class ECDiffieHellman : AsymmetricAlgorithm { + 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[] DeriveKeyTls(ECDiffieHellmanPublicKey otherPartyPublicKey, byte[] prfLabel, byte[] prfSeed); } public sealed class ECDiffieHellmanCng : ECDiffieHellman { + public override byte[] DeriveKeyFromHash(ECDiffieHellmanPublicKey otherPartyPublicKey, HashAlgorithmName hashAlgorithm, byte[] secretPrepend, byte[] secretAppend); + public override byte[] DeriveKeyFromHmac(ECDiffieHellmanPublicKey otherPartyPublicKey, HashAlgorithmName hashAlgorithm, byte[] hmacKey, byte[] secretPrepend, byte[] secretAppend); + public override byte[] DeriveKeyTls(ECDiffieHellmanPublicKey otherPartyPublicKey, byte[] prfLabel, byte[] prfSeed); } public abstract class ECDiffieHellmanPublicKey : IDisposable { - public abstract string ToXmlString(); + public virtual string ToXmlString(); } + public sealed class TripleDESCng : TripleDES { + public TripleDESCng(); + public TripleDESCng(string keyName); + public TripleDESCng(string keyName, CngProvider provider); + public TripleDESCng(string keyName, CngProvider provider, CngKeyOpenOptions openOptions); + public override byte[] Key { get; set; } + public override int KeySize { get; set; } + public override ICryptoTransform CreateDecryptor(); + public override ICryptoTransform CreateDecryptor(byte[] rgbKey, byte[] rgbIV); + public override ICryptoTransform CreateEncryptor(); + public override ICryptoTransform CreateEncryptor(byte[] rgbKey, byte[] rgbIV); + public override void GenerateIV(); + public override void GenerateKey(); + } } namespace System.Security.Cryptography.X509Certificates { + public static class DSACertificateExtensions { + public static DSA GetDSAPrivateKey(this X509Certificate2 certificate); + public static DSA GetDSAPublicKey(this X509Certificate2 certificate); + } } namespace System.Security.Cryptography.Xml { public class SignedXml { + public const string XmlDsigRSASHA256Url = "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"; + public const string XmlDsigRSASHA384Url = "http://www.w3.org/2001/04/xmldsig-more#rsa-sha384"; + public const string XmlDsigRSASHA512Url = "http://www.w3.org/2001/04/xmldsig-more#rsa-sha512"; + public const string XmlDsigSHA256Url = "http://www.w3.org/2001/04/xmlenc#sha256"; + public const string XmlDsigSHA384Url = "http://www.w3.org/2001/04/xmldsig-more#sha384"; + public const string XmlDsigSHA512Url = "http://www.w3.org/2001/04/xmlenc#sha512"; } } namespace System.Web { public sealed class HttpCachePolicy { + public DateTime UtcTimestampCreated { get; set; } + public HttpCacheability GetCacheability(); + public string GetCacheExtensions(); + public string GetETag(); + public bool GetETagFromFileDependencies(); + public DateTime GetExpires(); + public bool GetIgnoreRangeRequests(); + public bool GetLastModifiedFromFileDependencies(); + public TimeSpan GetMaxAge(); + public bool GetNoServerCaching(); + public bool GetNoStore(); + public bool GetNoTransforms(); + public int GetOmitVaryStar(); + public TimeSpan GetProxyMaxAge(); + public HttpCacheRevalidation GetRevalidation(); + public DateTime GetUtcLastModified(); + public string GetVaryByCustom(); + public bool HasSlidingExpiration(); + public bool IsModified(); + public bool IsValidUntilExpires(); } public sealed class HttpCacheVaryByContentEncodings { + public string[] GetContentEncodings(); + public void SetContentEncodings(string[] contentEncodings); } public sealed class HttpCacheVaryByHeaders { + public string[] GetHeaders(); + public void SetHeaders(string[] headers); } public sealed class HttpCacheVaryByParams { + public string[] GetParams(); + public void SetParams(string[] parameters); } } namespace System.Web.Caching { public sealed class AggregateCacheDependency : CacheDependency, ICacheDependencyChanged { + public override string[] GetFileDependencies(); } public class CacheDependency : IDisposable { + public virtual string[] GetFileDependencies(); } + public abstract class OutputCacheProviderAsync : OutputCacheProvider { + protected OutputCacheProviderAsync(); + public abstract Task AddAsync(string key, object entry, DateTime utcExpiry); + public abstract Task GetAsync(string key); + public abstract Task RemoveAsync(string key); + public abstract Task SetAsync(string key, object entry, DateTime utcExpiry); + } + public static class OutputCacheUtility { + public static CacheDependency CreateCacheDependency(HttpResponse response); + public static ArrayList GetContentBuffers(HttpResponse response); + public static IEnumerable> GetValidationCallbacks(HttpResponse response); + public static void SetContentBuffers(HttpResponse response, ArrayList buffers); + public static string SetupKernelCaching(string originalCacheUrl, HttpResponse response); + } } +namespace System.Web.Globalization { + public interface IStringLocalizerProvider { + string GetLocalizedString(CultureInfo culture, string name, params object[] arguments); + } + public sealed class ResourceFileStringLocalizerProvider : IStringLocalizerProvider { + public const string ResourceFileName = "DataAnnotation.Localization"; + public ResourceFileStringLocalizerProvider(); + public string GetLocalizedString(CultureInfo culture, string name, params object[] arguments); + } + public static class StringLocalizerProviders { + public static IStringLocalizerProvider DataAnnotationStringLocalizerProvider { get; set; } + } +} namespace System.Web.ModelBinding { public class DataAnnotationsModelValidator : ModelValidator { + protected virtual string GetLocalizedErrorMessage(string errorMessage); + protected string GetLocalizedString(string name, params object[] arguments); } + public sealed class MaxLengthAttributeAdapter : DataAnnotationsModelValidator { + public MaxLengthAttributeAdapter(ModelMetadata metadata, ModelBindingExecutionContext context, MaxLengthAttribute attribute); + } + public sealed class MinLengthAttributeAdapter : DataAnnotationsModelValidator { + public MinLengthAttributeAdapter(ModelMetadata metadata, ModelBindingExecutionContext context, MinLengthAttribute attribute); + } } namespace System.Web.SessionState { + public interface ISessionStateModule : IHttpModule { + void ReleaseSessionState(HttpContext context); + Task ReleaseSessionStateAsync(HttpContext context); + } - public sealed class SessionStateModule : IHttpModule { + public sealed class SessionStateModule : IHttpModule, ISessionStateModule { + public void ReleaseSessionState(HttpContext context); + public Task ReleaseSessionStateAsync(HttpContext context); } public static class SessionStateUtility { + public static bool IsSessionStateReadOnly(HttpContext context); + public static bool IsSessionStateRequired(HttpContext context); } } namespace System.Windows { + public sealed class DpiChangedEventArgs : RoutedEventArgs { + public DpiScale NewDpi { get; private set; } + public DpiScale OldDpi { get; private set; } + } + public delegate void DpiChangedEventHandler(object sender, DpiChangedEventArgs e); { + public DpiChangedEventHandler(object @object, IntPtr method); + public virtual IAsyncResult BeginInvoke(object sender, DpiChangedEventArgs e, AsyncCallback callback, object @object); + public virtual void EndInvoke(IAsyncResult result); + public virtual void Invoke(object sender, DpiChangedEventArgs e); + } + [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] + public struct DpiScale { + public DpiScale(double dpiScaleX, double dpiScaleY); + public double DpiScaleX { get; } + public double DpiScaleY { get; } + public double PixelsPerDip { get; } + public double PixelsPerInchX { get; } + public double PixelsPerInchY { get; } + } public static class FrameworkCompatibilityPreferences { + public static bool ShouldThrowOnCopyOrCutFailure { get; set; } } + public sealed class HwndDpiChangedEventArgs : HandledEventArgs { + public DpiScale NewDpi { get; private set; } + public DpiScale OldDpi { get; private set; } + public Rect SuggestedRect { get; private set; } + } + public delegate void HwndDpiChangedEventHandler(object sender, HwndDpiChangedEventArgs e); { + public HwndDpiChangedEventHandler(object @object, IntPtr method); + public virtual IAsyncResult BeginInvoke(object sender, HwndDpiChangedEventArgs e, AsyncCallback callback, object @object); + public virtual void EndInvoke(IAsyncResult result); + public virtual void Invoke(object sender, HwndDpiChangedEventArgs e); + } public class Window : ContentControl, IWindowService { + public static readonly RoutedEvent DpiChangedEvent; + protected override void OnDpiChanged(DpiScale oldDpi, DpiScale newDpi); + public event DpiChangedEventHandler DpiChanged; } } namespace System.Windows.Controls { public class FlowDocumentReader : Control, IAddChild, IJournalState { + protected override void OnDpiChanged(DpiScale oldDpiScaleInfo, DpiScale newDpiScaleInfo); } public class Image : FrameworkElement, IProvidePropertyFallback, IUriContext { + public static readonly RoutedEvent DpiChangedEvent; + protected override void OnDpiChanged(DpiScale oldDpi, DpiScale newDpi); + public event DpiChangedEventHandler DpiChanged; } public class RichTextBox : TextBoxBase, IAddChild { + protected override void OnDpiChanged(DpiScale oldDpiScaleInfo, DpiScale newDpiScaleInfo); } } namespace System.Windows.Controls.Primitives { public class DocumentPageView : FrameworkElement, IDisposable, IServiceProvider { + protected override void OnDpiChanged(DpiScale oldDpiScaleInfo, DpiScale newDpiScaleInfo); } public abstract class DocumentViewerBase : Control, IAddChild, IServiceProvider { + protected override void OnDpiChanged(DpiScale oldDpiScaleInfo, DpiScale newDpiScaleInfo); } } namespace System.Windows.Diagnostics { + public static class ResourceDictionaryDiagnostics { + public static IEnumerable GenericResourceDictionaries { get; } + public static IEnumerable ThemedResourceDictionaries { get; } + public static event EventHandler GenericResourceDictionaryLoaded; + public static event EventHandler ThemedResourceDictionaryLoaded; + public static event EventHandler ThemedResourceDictionaryUnloaded; + } + public class ResourceDictionaryInfo { + public Assembly Assembly { get; private set; } + public ResourceDictionary ResourceDictionary { get; private set; } + public Assembly ResourceDictionaryAssembly { get; private set; } + public Uri SourceUri { get; private set; } + } + public class ResourceDictionaryLoadedEventArgs : EventArgs { + public ResourceDictionaryInfo ResourceDictionaryInfo { get; private set; } + } + public class ResourceDictionaryUnloadedEventArgs : EventArgs { + public ResourceDictionaryInfo ResourceDictionaryInfo { get; private set; } + } } namespace System.Windows.Documents { public class FlowDocument : FrameworkContentElement, IAddChild, IDocumentPaginatorSource, IServiceProvider { + public void SetDpi(DpiScale dpiInfo); } } namespace System.Windows.Interop { public abstract class HwndHost : FrameworkElement, IDisposable, IKeyboardInputSink, IWin32Window { + public static readonly RoutedEvent DpiChangedEvent; + protected override void OnDpiChanged(DpiScale oldDpi, DpiScale newDpi); + public event DpiChangedEventHandler DpiChanged; } public class HwndSource : PresentationSource, IDisposable, IKeyboardInputSink, IWin32Window { + protected virtual void OnDpiChanged(HwndDpiChangedEventArgs e); + public event HwndDpiChangedEventHandler DpiChanged; } } namespace System.Windows.Media { public class FormattedText { + public FormattedText(string textToFormat, CultureInfo culture, FlowDirection flowDirection, Typeface typeface, double emSize, Brush foreground, double pixelsPerDip); + public FormattedText(string textToFormat, CultureInfo culture, FlowDirection flowDirection, Typeface typeface, double emSize, Brush foreground, NumberSubstitution numberSubstitution, double pixelsPerDip); + public FormattedText(string textToFormat, CultureInfo culture, FlowDirection flowDirection, Typeface typeface, double emSize, Brush foreground, NumberSubstitution numberSubstitution, TextFormattingMode textFormattingMode, double pixelsPerDip); + public double PixelsPerDip { get; set; } } public class GlyphRun : DUCE.IResource, ISupportInitialize { + public GlyphRun(GlyphTypeface glyphTypeface, int bidiLevel, bool isSideways, double renderingEmSize, float pixelsPerDip, IList glyphIndices, Point baselineOrigin, IList advanceWidths, IList glyphOffsets, IList characters, string deviceFontName, IList clusterMap, IList caretStops, XmlLanguage language); + public GlyphRun(float pixelsPerDip); + public float PixelsPerDip { get; set; } } public abstract class Visual : DependencyObject, DUCE.IResource { + protected virtual void OnDpiChanged(DpiScale oldDpi, DpiScale newDpi); } public static class VisualTreeHelper { + public static DpiScale GetDpi(Visual visual); + public static void SetRootDpi(Visual visual, DpiScale dpiInfo); } } namespace System.Windows.Media.TextFormatting { public abstract class TextLine : IDisposable, ITextMetrics { + protected TextLine(double pixelsPerDip); + public double PixelsPerDip { get; set; } } public abstract class TextRunProperties { + public double PixelsPerDip { get; set; } } public abstract class TextSource { + public double PixelsPerDip { get; set; } } } namespace System.Windows.Data { public class PropertyGroupDescription : GroupDescription { + public static IComparer CompareNameAscending { get; } + public static IComparer CompareNameDescending { get; } } } ```