Ответ 1
Используя 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.6_diff.md, мне удалось собрать список API, присутствующих в .Net Standard 1.6, но отсутствует в .Net Framework 4.6.1:
-
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
:-
public int BufferSize { get; }
(не в .Net Framework) -
public Stream UnderlyingStream { get; }
(не в .Net Framework)
-
-
System.Reflection.TypeInfo
: все следующие API, ни один из которых не находится в .Net Frameworkpublic 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
:-
public static string TargetFrameworkName { get; }
(не в .Net Framework) -
public static object GetData(string name)
(не в .Net Framework)
-
-
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)
(не в .Net Framework)
-
-
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
struct: не в .Net Framework -
System.Security.Cryptography.ECPoint
struct: не в .Net Framework -
System.Security.Cryptography.ECDsa
:-
public static ECDsa Create(ECCurve curve)
(не в .Net Framework) -
public static ECDsa Create(ECParameters parameters)
(не в .Net Framework) -
public virtual ECParameters ExportExplicitParameters(bool includePrivateParameters)
(не в .Net Framework) -
public virtual ECParameters ExportParameters(bool includePrivateParameters)
(не в .Net Framework) -
public virtual void GenerateKey(ECCurve curve)
(не в .Net Framework) -
public virtual void ImportParameters(ECParameters parameters)
(не в .Net Framework)
-
-
System.Text.RegularExpressions.Regex
:-
protected IDictionary CapNames { get; set; }
(не в .Net Framework) -
protected IDictionary Caps { get; set; }
(не в .Net Framework)
-
Это намного больше, чем 43 API. Я еще не прошел список API. Standard Standard 2.0 (он огромный); как только я это сделаю, я отредактирую этот ответ, чтобы отразить то, что я нахожу.