标题为“ .NET标准API参考 ”的SO问题引用了https://github.com/dotnet/standard/issues/133中的讨论,提到43个API将包含在.Net标准2.0中,但不支持.Net框架4.6.1。但是,我一直无法在互联网上的任何地方找到这43个API的列表。我在搜索中最接近的是https://github.com/dotnet/standard/blob/master/docs/versions/netstandard1.5_diff.md和https://github.com/dotnet/standard/blob/ master / docs / versions / netstandard1.6_diff.md,其中列出了.Net Standard 1.5和1.6中引入的API。起初我认为我的搜索结束了,但后来我意识到:
互联网上的任何地方是否有.Net Standard 2.0中包含但未包含在.Net Framework 4.6.1 中的43个特定 API 的列表?
发布于 2018-03-21 14:08:08
所有信用转到 @benaadams
可以在以下位置找到缺少的apis:ApiCompatBaseline.net461.txt
我检查了这个文件并找到了52条(超过43条!)。
52个缺失的API是:
Member 'System.AppContext.GetData(System.String)'
Member 'System.AppContext.TargetFrameworkName.get()'
Type 'System.StringNormalizationExtensions'
Type 'System.Data.Common.DbColumn'
Type 'System.Data.Common.DbDataReaderExtensions'
Type 'System.Data.Common.IDbColumnSchemaGenerator'
Type 'System.Diagnostics.StackFrameExtensions'
Type 'System.Diagnostics.Tracing.EventCounter'
Member 'System.Diagnostics.Tracing.EventSource.add_EventCommandExecuted(System.EventHandler<System.Diagnostics.Tracing.EventCommandEventArgs>)'
Member 'System.Diagnostics.Tracing.EventSource.remove_EventCommandExecuted(System.EventHandler<System.Diagnostics.Tracing.EventCommandEventArgs>)'
Type 'System.Globalization.GlobalizationExtensions'
Member 'System.Linq.Enumerable.Append<TSource>(System.Collections.Generic.IEnumerable<TSource>, TSource)'
Member 'System.Linq.Enumerable.Prepend<TSource>(System.Collections.Generic.IEnumerable<TSource>, TSource)'
Member 'System.Linq.Expressions.Expression<TDelegate>.Compile(System.Boolean)'
Member 'System.Linq.Expressions.LambdaExpression.Compile(System.Boolean)'
Member 'System.Net.Http.HttpClientHandler.CheckCertificateRevocationList.get()'
Member 'System.Net.Http.HttpClientHandler.CheckCertificateRevocationList.set(System.Boolean)'
Member 'System.Net.Http.HttpClientHandler.ClientCertificates.get()'
Member 'System.Net.Http.HttpClientHandler.DefaultProxyCredentials.get()'
Member 'System.Net.Http.HttpClientHandler.DefaultProxyCredentials.set(System.Net.ICredentials)'
Member 'System.Net.Http.HttpClientHandler.MaxConnectionsPerServer.get()'
Member 'System.Net.Http.HttpClientHandler.MaxConnectionsPerServer.set(System.Int32)'
Member 'System.Net.Http.HttpClientHandler.MaxResponseHeadersLength.get()'
Member 'System.Net.Http.HttpClientHandler.MaxResponseHeadersLength.set(System.Int32)'
Member 'System.Net.Http.HttpClientHandler.Properties.get()'
Member 'System.Net.Http.HttpClientHandler.ServerCertificateCustomValidationCallback.get()'
Member 'System.Net.Http.HttpClientHandler.ServerCertificateCustomValidationCallback.set(System.Func<System.Net.Http.HttpRequestMessage, System.Security.Cryptography.X509Certificates.X509Certificate2, System.Security.Cryptography.X509Certificates.X509Chain, System.Net.Security.SslPolicyErrors, System.Boolean>)'
Member 'System.Net.Http.HttpClientHandler.SslProtocols.get()'
Member 'System.Net.Http.HttpClientHandler.SslProtocols.set(System.Security.Authentication.SslProtocols)'
Type 'System.Net.Sockets.SocketReceiveFromResult'
Type 'System.Net.Sockets.SocketReceiveMessageFromResult'
Type 'System.Net.Sockets.SocketTaskExtensions'
Type 'System.Runtime.Serialization.DataContractSerializerExtensions'
Type 'System.Runtime.Serialization.ISerializationSurrogateProvider'
Type 'System.Security.SecureStringMarshal'
Type 'System.Security.Cryptography.ECCurve'
Member 'System.Security.Cryptography.ECDsa.Create(System.Security.Cryptography.ECCurve)'
Member 'System.Security.Cryptography.ECDsa.Create(System.Security.Cryptography.ECParameters)'
Member 'System.Security.Cryptography.ECDsa.ExportExplicitParameters(System.Boolean)'
Member 'System.Security.Cryptography.ECDsa.ExportParameters(System.Boolean)'
Member 'System.Security.Cryptography.ECDsa.GenerateKey(System.Security.Cryptography.ECCurve)'
Member 'System.Security.Cryptography.ECDsa.ImportParameters(System.Security.Cryptography.ECParameters)'
Type 'System.Security.Cryptography.ECParameters'
Type 'System.Security.Cryptography.ECPoint'
Type 'System.Security.Cryptography.IncrementalHash'
Member 'System.Text.RegularExpressions.Regex.CapNames.get()'
Member 'System.Text.RegularExpressions.Regex.CapNames.set(System.Collections.IDictionary)'
Member 'System.Text.RegularExpressions.Regex.Caps.get()'
Member 'System.Text.RegularExpressions.Regex.Caps.set(System.Collections.IDictionary)'
Type 'System.Threading.PreAllocatedOverlapped'
Type 'System.Threading.ThreadPoolBoundHandle'
Type 'System.Xml.XPath.XDocumentExtensions'
我检查了大部分这些API,发现它们在net461中不可用,但在netstandard2中可用
预计缺少的API将在.NET Framework 7.1中实现.NET Framework 4.7.1提供了对.NET Standard 2.0的内置支持
随着.NET Framework 4.7.1的最终版本,4.6.1中所有缺少的API都被实现。
现在.Net Standard 2.0内置于.NET Framework 4.7.1中,无需安装.Net Standard 2.0支持的二进制文件。
https://stackoverflow.com/questions/-100004285
复制相似问题