2017-04-25 31 views
16

.NET Standard API Referenceと題された質問には、https://github.com/dotnet/standard/issues/133というディスカッションの中で、.Net Standard 2.0に含まれていますが、.Net Framework 4.6.1ではサポートされていない43個のAPIが記載されています。しかし、私はこれらの43のAPIのリストをインターネット上のどこにも見つけることができませんでした。私の検索で最も近いのはhttps://github.com/dotnet/standard/blob/master/docs/versions/netstandard1.5_diff.mdhttps://github.com/dotnet/standard/blob/master/docs/versions/netstandard1.6_diff.mdで、これは.NET標準1.5と1.6で導入されたAPIのリストです。最初は、私は私の検索が終わったと思ったが、その後、私は実現:.Net Standard 2.0には含まれていますが、.NET Framework 4.6.1には含まれていない43のAPIは何ですか?

以上43のこれら二つのリスト内のAPI、およびそれらの
  • 多くは、すでに.NET Frameworkの4.6.1でサポートされていますが、仕方あり

  • は、そこにインターネット上の どこでも、ネット規格2.0に含まれているが、.NET Frameworkの4.6.1に含まれていません43 特定 APIの一覧ですか? https://apisof.netを使用して https://github.com/dotnet/standard/blob/master/docs/versions/netstandard1.5_diff.mdhttps://github.com/dotnet/standard/blob/master/docs/versions/netstandard1.6_diff.mdに記載されているすべてのAPIに対してそれをチェックすることにより

    +0

    Ben AdamsがGitHubの問題の現在のコメントのうち、4.6.1に実装されていない52個のAPIのリストへのリンクは、これがあなたが探しているものではありませんか? –

    +0

    あなたは[このリスト](https://github.com/dotnet/standard/blob/master/netstandard/src/ApiCompatBaseline.net461.txt)を意味していますか?ありがとう!しかし、私は自分の質問に答えるためにhttp://apisof.net/を行ってきたので、そこにリストされていないいくつかのAPIを見つけました。 (たとえば、System.Reflection.TypeInfoのいくつかの新しいAPIは、4.6.1には含まれていませんが、Ben Adamsがリンクしているリストには表示されません)。だから、私が現在書いている答えを書いて、Ben Adamsのリストと何が重なっているかを見ていきます。 – rmunn

    答えて

    7

    は、私が一緒にネット規格1.6に存在するが、.NET Frameworkの4.6.1に欠けているAPIのリストを置くことができた:

    • System.Diagnostics.Tracing.EventCounter
        public EventCounter(string name, EventSource eventSource)
      • (ない.NET Frameworkの)
      • public void WriteMetric(float value)(ない.NET Frameworkの)
    • System.Diagnostics.Tracing.EventSource
      • public event EventHandler<EventCommandEventArgs> EventCommandExecuted(.NET Frameworkの4.6.2ではなく4.6.1において)
    • System.IO.BufferedStream:(ない.NET Frameworkの)
      • public int BufferSize { get; }
      • public Stream UnderlyingStream { get; }(.Net Frameworkにはありません)
    • System.Reflection.TypeInfo:.NET Frameworkの

      public virtual bool IsCOMObject { get; } 
      public override MemberTypes MemberType { get; } 
      public virtual StructLayoutAttribute StructLayoutAttribute { get; } 
      public ConstructorInfo TypeInitializer { get; } 
      public virtual Type UnderlyingSystemType { get; } 
      public virtual Type[] FindInterfaces(TypeFilter filter, object filterCriteria); 
      public virtual MemberInfo[] FindMembers(MemberTypes memberType, BindingFlags bindingAttr, MemberFilter filter, object filterCriteria); 
      public ConstructorInfo GetConstructor(Type[] types); 
      public ConstructorInfo[] GetConstructors(); 
      public virtual ConstructorInfo[] GetConstructors(BindingFlags bindingAttr); 
      public virtual MemberInfo[] GetDefaultMembers(); 
      public virtual string GetEnumName(object value); 
      public virtual string[] GetEnumNames(); 
      public virtual Type GetEnumUnderlyingType(); 
      public virtual Array GetEnumValues(); 
      public EventInfo GetEvent(string name); 
      public virtual EventInfo GetEvent(string name, BindingFlags bindingAttr); 
      public virtual EventInfo[] GetEvents(); 
      public virtual EventInfo[] GetEvents(BindingFlags bindingAttr); 
      public FieldInfo GetField(string name); 
      public virtual FieldInfo GetField(string name, BindingFlags bindingAttr); 
      public FieldInfo[] GetFields(); 
      public virtual FieldInfo[] GetFields(BindingFlags bindingAttr); 
      public virtual Type[] GetGenericArguments(); 
      public Type GetInterface(string name); 
      public virtual Type GetInterface(string name, bool ignoreCase); 
      public virtual Type[] GetInterfaces(); 
      public MemberInfo[] GetMember(string name); 
      public virtual MemberInfo[] GetMember(string name, BindingFlags bindingAttr); 
      public virtual MemberInfo[] GetMember(string name, MemberTypes type, BindingFlags bindingAttr); 
      public MemberInfo[] GetMembers(); 
      public virtual MemberInfo[] GetMembers(BindingFlags bindingAttr); 
      public MethodInfo GetMethod(string name); 
      public MethodInfo GetMethod(string name, BindingFlags bindingAttr); 
      public MethodInfo GetMethod(string name, Type[] types); 
      public MethodInfo GetMethod(string name, Type[] types, ParameterModifier[] modifiers); 
      public MethodInfo[] GetMethods(); 
      public virtual MethodInfo[] GetMethods(BindingFlags bindingAttr); 
      public Type GetNestedType(string name); 
      public virtual Type GetNestedType(string name, BindingFlags bindingAttr); 
      public Type[] GetNestedTypes(); 
      public virtual Type[] GetNestedTypes(BindingFlags bindingAttr); 
      public PropertyInfo[] GetProperties(); 
      public virtual PropertyInfo[] GetProperties(BindingFlags bindingAttr); 
      public PropertyInfo GetProperty(string name); 
      public PropertyInfo GetProperty(string name, BindingFlags bindingAttr); 
      public PropertyInfo GetProperty(string name, Type returnType); 
      public PropertyInfo GetProperty(string name, Type returnType, Type[] types); 
      public PropertyInfo GetProperty(string name, Type returnType, Type[] types, ParameterModifier[] modifiers); 
      public PropertyInfo GetProperty(string name, Type[] types); 
      public virtual bool IsAssignableFrom(Type c); 
      public virtual bool IsEnumDefined(object value); 
      public virtual bool IsEquivalentTo(Type other); 
      public virtual bool IsInstanceOfType(object o); 
      
    • System.AppContextあるいずれも、すべての次のAPI:
      • public static string TargetFrameworkName { get; }(ない.NET Frameworkの)
      • public static object GetData(string name)(ない.NETでフレームワーク)
    • System.Linq.Enumerable
      • public static IEnumerable<TSource> Append<TSource>(this IEnumerable<TSource> source, TSource element)(ない.NET Frameworkの)
      • public static IEnumerable<TSource> Prepend<TSource>(this IEnumerable<TSource> source, TSource element)(ないしました。ネットフレームワーク)
    • System.Security.Cryptography.ECCurve:全体ECCurve構造体、および()System.Security.Cryptography.ECCurve.NamedCurves静的クラスを含め、その中にすべてのものは、.NET Frameworkのではありません。言い換えれば、以下のリストにあるすべてのAPIは、.NETのコアで新たに導入されおよび.NET Framework 4.6.1(または4.6.2)で見つけることができません。

      public struct ECCurve { 
          public enum ECCurveType { 
           Characteristic2 = 4, 
           Implicit = 0, 
           Named = 5, 
           PrimeMontgomery = 3, 
           PrimeShortWeierstrass = 1, 
           PrimeTwistedEdwards = 2, 
          } 
          public static class NamedCurves { 
           public static ECCurve brainpoolP160r1 { get; } 
           public static ECCurve brainpoolP160t1 { get; } 
           public static ECCurve brainpoolP192r1 { get; } 
           public static ECCurve brainpoolP192t1 { get; } 
           public static ECCurve brainpoolP224r1 { get; } 
           public static ECCurve brainpoolP224t1 { get; } 
           public static ECCurve brainpoolP256r1 { get; } 
           public static ECCurve brainpoolP256t1 { get; } 
           public static ECCurve brainpoolP320r1 { get; } 
           public static ECCurve brainpoolP320t1 { get; } 
           public static ECCurve brainpoolP384r1 { get; } 
           public static ECCurve brainpoolP384t1 { get; } 
           public static ECCurve brainpoolP512r1 { get; } 
           public static ECCurve brainpoolP512t1 { get; } 
           public static ECCurve nistP256 { get; } 
           public static ECCurve nistP384 { get; } 
           public static ECCurve nistP521 { get; } 
          } 
          public byte[] A; 
          public byte[] B; 
          public byte[] Cofactor; 
          public ECCurve.ECCurveType CurveType; 
          public ECPoint G; 
          public Nullable<HashAlgorithmName> Hash; 
          public byte[] Order; 
          public byte[] Polynomial; 
          public byte[] Prime; 
          public byte[] Seed; 
          public bool IsCharacteristic2 { get; } 
          public bool IsExplicit { get; } 
          public bool IsNamed { get; } 
          public bool IsPrime { get; } 
          public Oid Oid { get; } 
          public static ECCurve CreateFromFriendlyName(string oidFriendlyName); 
          public static ECCurve CreateFromOid(Oid curveOid); 
          public static ECCurve CreateFromValue(string oidValue); 
          public void Validate(); 
      } 
      
    • System.Security.Cryptography.ECParameters構造体:ありません。ネットでフレームワーク
    • System.Security.Cryptography.ECPoint構造体:いない.NET Frameworkの
    • System.Security.Cryptography.ECDsa
      • public static ECDsa Create(ECCurve curve)(ない.NET Frameworkの)
      • public static ECDsa Create(ECParameters parameters)(ないネットFramewoで(いない.NET Frameworkの(ない.NET FrameworkのRK)
      • public virtual ECParameters ExportExplicitParameters(bool includePrivateParameters)(ない.NET Frameworkの)
      • public virtual ECParameters ExportParameters(bool includePrivateParameters)
      • (ない.NET Frameworkの)
      • public virtual void GenerateKey(ECCurve curve)
      • public virtual void ImportParameters(ECParameters parameters)
    • System.Text.RegularExpressions.Regex
      • protected IDictionary CapNames { get; set; }(ない.NET Frameworkの)
      • protected IDictionary Caps { get; set; }(ない.NET Frameworkの)

    43個のAPIよりも多くのですそれ。私はまだ.Net標準2.0 APIリスト(それはの巨大な)を通過していない。私がしたら、私はこの答えを編集して私が見つけたものを反映させます。

    +0

    SignedCmsとCmsSigner from cryptography pkcs – VMAtm

    +3

    この質問は、1.6ではなく、.NET標準2.0について尋ねました。私はデベロッパーから少し前に1.5と1.6に頼らないために2.0と互換性がないので、ノートを見ました。 –

    +0

    はい、私は.Net Standard 2.0について尋ねました。私はこれまでに1.5と1.6の変更を行う時間がありました。 2.0の変更は私自身の質問に答えるために働くまでにもっと長い時間がかかります。だから私は、誰かが私を既に存在するリストに向けることができると願っていたのです。 – rmunn

    2

    私はあなたがで行方不明のAPIを見つけることができるすべてのクレジット後藤に.Net Standard project

    @benaadams

    similar question投稿:(!43以上)私は、ファイルをチェックし、52エントリを見つけApiCompatBaseline.net461.txt

    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' 
    

    私はnetstandard2

    に欠けているAPIが実装されることが予想されているこれらのAPIのほとんどを確認し、それらがnet461では利用できないことがわかったが、利用可能.NET Frameworkの7.1 .NET Framework 4.7.1 provides built-in support for .NET Standard 2.0

    the .NET Framework 4.7.1 Early Access

    更新11月、2017:

    .NET Framework 4.7.1の最終リリースでは、4.6.1に欠けているAPIがすべて実装されています。今、ネット規格2.0は、右の.NET Frameworkに組み込まれている

    List of implemented API

    は、.NETの標準2.0サポートバイナリをインストールすることなく、自分自身を4.7.1。

    関連する問題