Meta-package that includes Hafner.Compatibility.* packages (see https://github.com/HugoRoss/Hafner.Compatibility.Packages) as required. See 'PackageReadMe.md' for an overview with the exact types that are currently supported and for which framework they are imported.
$ dotnet add package Hafner.Compatibility.MetaPackageThis is a meta-package that includes other Hafner.Compatibility.* packages (from repo https://github.com/HugoRoss/Hafner.Compatibility.Packages) as needed which provide various attributes and other types that are missing in older frameworks.
Currently, the following types are supported (the X defines for which frameworks this package is adding the according types because they are not supported natively):
| Types | .Net 2.0 | 3.0 | 3.5 | 4.0 | 4.0.3 | 4.5 | 4.5.1 | 4.5.2 | 4.6 | 4.6.1 | 4.6.2 | 4.7 | 4.7.1 | 4.7.2 | 4.8 | 4.8.1 | .NETCore 1.0 | 1.1 | 2.0 | 2.1 | 2.2 | 3.0 | 3.1 | .Net 5.0 | 6.0 | 7.0 | 8.0 | 9.0 | 10.0 | .NET Standard 1.0 | 1.1 | 1.2 | 1.3 | 1.4 | 1.5 | 1.6 | 2.0 | 2.1 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
System.Action<T1, T2, T3, T4, T5> | X | X | X | |||||||||||||||||||||||||||||||||||
System.Action<T1, T2, T3, T4, T5, T6> | X | X | X | |||||||||||||||||||||||||||||||||||
System.Action<T1, T2, T3, T4, T5, T6, T7> | X | X | X | |||||||||||||||||||||||||||||||||||
System.Action<T1, T2, T3, T4, T5, T6, T7, T8> | X | X | X | |||||||||||||||||||||||||||||||||||
System.Action<T1, T2, T3, T4, T5, T6, T7, T8, T9> | X | X | X | |||||||||||||||||||||||||||||||||||
System.Action<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> | X | X | X | |||||||||||||||||||||||||||||||||||
System.Action<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> | X | X | X | |||||||||||||||||||||||||||||||||||
System.Action<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> | X | X | X | |||||||||||||||||||||||||||||||||||
System.Action<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> | X | X | X | |||||||||||||||||||||||||||||||||||
System.Action<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> | X | X | X | |||||||||||||||||||||||||||||||||||
System.Action<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> | X | X | X | |||||||||||||||||||||||||||||||||||
System.Action<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> | X | X | X | |||||||||||||||||||||||||||||||||||
System.Func<T1, T2, T3, T4, T5, TResult> | X | X | X | |||||||||||||||||||||||||||||||||||
System.Func<T1, T2, T3, T4, T5, T6, TResult> | X | X | X | |||||||||||||||||||||||||||||||||||
System.Func<T1, T2, T3, T4, T5, T6, T7, TResult> | X | X | X | |||||||||||||||||||||||||||||||||||
System.Func<T1, T2, T3, T4, T5, T6, T7, T8, TResult> | X | X | X | |||||||||||||||||||||||||||||||||||
System.Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TResult> | X | X | X | |||||||||||||||||||||||||||||||||||
System.Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TResult> | X | X | X | |||||||||||||||||||||||||||||||||||
System.Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, TResult> | X | X | X | |||||||||||||||||||||||||||||||||||
System.Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, TResult> | X | X | X | |||||||||||||||||||||||||||||||||||
System.Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, TResult> | X | X | X | |||||||||||||||||||||||||||||||||||
System.Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, TResult> | X | X | X | |||||||||||||||||||||||||||||||||||
System.Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, TResult> | X | X | X | |||||||||||||||||||||||||||||||||||
System.Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, TResult> | X | X | X | |||||||||||||||||||||||||||||||||||
System.LoaderOptimizationAttribute | X | X | X | X | X | X | X | X | X | |||||||||||||||||||||||||||||
System.LoaderOptimization | X | X | X | X | X | X | X | X | X | |||||||||||||||||||||||||||||
System.SerializableAttribute | X | X | X | X | X | X | X | X | X | |||||||||||||||||||||||||||||
System.Diagnostics.CodeAnalysis.AllowNullAttribute | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | |||||||||
System.Diagnostics.CodeAnalysis.ConstantExpectedAttribute | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | ||||
System.Diagnostics.CodeAnalysis.DisallowNullAttribute | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | |||||||||
System.Diagnostics.CodeAnalysis.DoesNotReturnAttribute | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | |||||||||
System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | |||||||||
System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | ||||||
System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | ||||||
System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | ||||||
System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute | X | X | X | X | X | X | X | X | X | X | X | X | ||||||||||||||||||||||||||
System.Diagnostics.CodeAnalysis.ExperimentalAttribute | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | |||
System.Diagnostics.CodeAnalysis.FeatureGuardAttribute | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | ||
System.Diagnostics.CodeAnalysis.FeatureSwitchDefinitionAttribute | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | ||
System.Diagnostics.CodeAnalysis.MaybeNullAttribute | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | |||||||||
System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | |||||||||
System.Diagnostics.CodeAnalysis.MemberNotNullAttribute | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | ||||||
System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | ||||||
System.Diagnostics.CodeAnalysis.NotNullAttribute | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | |||||||||
System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | |||||||||
System.Diagnostics.CodeAnalysis.NotNullWhenAttribute | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | |||||||||
System.Diagnostics.CodeAnalysis.NullableAttribute | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | |||
System.Diagnostics.CodeAnalysis.NullableContextAttribute | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | |||
System.Diagnostics.CodeAnalysis.NullablePublicOnlyAttribute | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | |||
System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | ||||||
System.Runtime.CompilerService.CallerArgumentExpressionAttribute | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | ||||||||
System.Runtime.CompilerService.CallerFilePathAttribute | X | X | X | X | X | |||||||||||||||||||||||||||||||||
System.Runtime.CompilerService.CallerLineNumberAttribute | X | X | X | X | X | |||||||||||||||||||||||||||||||||
System.Runtime.CompilerService.CallerMemberNameAttribute | X | X | X | X | X | |||||||||||||||||||||||||||||||||
System.Runtime.CompilerServices.ExtensionAttribute | X | X | ||||||||||||||||||||||||||||||||||||
System.Runtime.InteropServices.GuidAttribute | X |