SO问题题为.NET 标准 API 参考 https://stackoverflow.com/q/40923831/2314532,引用中的讨论https://github.com/dotnet/standard/issues/133 https://github.com/dotnet/standard/issues/133,提到 43 个 API 将包含在 .Net Standard 2.0 中,但不受 .Net Framework 4.6.1 支持。但是,我无法在 Internet 上的任何地方找到这 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.5_diff.md and https://github.com/dotnet/standard/blob/master/docs/versions/netstandard1.6_diff.md https://github.com/dotnet/standard/blob/master/docs/versions/netstandard1.6_diff.md,其中列出了 .Net Standard 1.5 和 1.6 中引入的 API。起初我以为我的搜索结束了,但后来我意识到:
- 这两个列表中有超过 43 个 API,并且
- 其中许多已受 .Net Framework 4.6.1 支持。
有没有,anywhere互联网上列出了 43specific.Net Standard 2.0 中包含但 .Net Framework 4.6.1 中未包含的 API?
通过使用https://apisof.net https://apisof.net并根据中列出的每个 API 进行检查https://github.com/dotnet/standard/blob/master/docs/versions/netstandard1.5_diff.md https://github.com/dotnet/standard/blob/master/docs/versions/netstandard1.5_diff.md and https://github.com/dotnet/standard/blob/master/docs/versions/netstandard1.6_diff.md https://github.com/dotnet/standard/blob/master/docs/versions/netstandard1.6_diff.md,我设法整理了 .Net Standard 1.6 中存在但 .Net Framework 4.6.1 中缺失的 API 列表:
-
System.Diagnostics.Tracing.EventCounter https://apisof.net/catalog/System.Diagnostics.Tracing.EventCounter:
-
public EventCounter(string name, EventSource eventSource)
(不在.Net框架中)
-
public void WriteMetric(float value)
(不在.Net框架中)
-
System.Diagnostics.Tracing.EventSource https://apisof.net/catalog/System.Diagnostics.Tracing.EventSource:
-
public event EventHandler<EventCommandEventArgs> EventCommandExecuted
(在 .Net Framework 4.6.2 中,但不在 4.6.1 中)
-
System.IO.BufferedStream https://apisof.net/catalog/System.IO.BufferedStream:
-
public int BufferSize { get; }
(不在.Net框架中)
-
public Stream UnderlyingStream { get; }
(不在.Net框架中)
-
System.Reflection.TypeInfo https://apisof.net/catalog/System.Reflection.TypeInfo:以下所有 API,均不在 .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 https://apisof.net/catalog/System.AppContext:
-
public static string TargetFrameworkName { get; }
(不在.Net框架中)
-
public static object GetData(string name)
(不在.Net框架中)
-
System.Linq.Enumerable https://apisof.net/catalog/System.Linq.Enumerable:
-
public static IEnumerable<TSource> Append<TSource>(this IEnumerable<TSource> source, TSource element)
(不在.Net框架中)
-
public static IEnumerable<TSource> Prepend<TSource>(this IEnumerable<TSource> source, TSource element)
(不在.Net框架中)
-
System.Security.Cryptography.ECCurve https://apisof.net/catalog/System.Security.Cryptography.ECCurve: 全部的ECCurve
结构体以及其中的所有内容(包括System.Security.Cryptography.ECCurve.NamedCurves
静态类),不在 .Net Framework 中。换句话说,以下列表中的所有 API 都是 .Net Core 中新增的,在 .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 https://apisof.net/catalog/System.Security.Cryptography.ECParameters结构:不在 .Net Framework 中
-
System.Security.Cryptography.ECPoint https://apisof.net/catalog/System.Security.Cryptography.ECPoint结构:不在 .Net Framework 中
-
System.Security.Cryptography.ECDsa https://apisof.net/catalog/System.Security.Cryptography.ECDsa:
-
public static ECDsa Create(ECCurve curve)
(不在.Net框架中)
-
public static ECDsa Create(ECParameters parameters)
(不在.Net框架中)
-
public virtual ECParameters ExportExplicitParameters(bool includePrivateParameters)
(不在.Net框架中)
-
public virtual ECParameters ExportParameters(bool includePrivateParameters)
(不在.Net框架中)
-
public virtual void GenerateKey(ECCurve curve)
(不在.Net框架中)
-
public virtual void ImportParameters(ECParameters parameters)
(不在.Net框架中)
-
System.Text.RegularExpressions.Regex https://apisof.net/catalog/System.Text.RegularExpressions.Regex:
-
protected IDictionary CapNames { get; set; }
(不在.Net框架中)
-
protected IDictionary Caps { get; set; }
(不在.Net框架中)
这远远超过 43 个 API。我还没有浏览过 .Net Standard 2.0 API 列表(它是huge);一旦完成,我将编辑这个答案以反映我的发现。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)