diff --git a/misc/ApiPortabilityAnalysis-AllProjects-October.08.2015.htm b/misc/ApiPortabilityAnalysis-AllProjects-October.08.2015.htm new file mode 100644 index 0000000000..1c3ac98a39 --- /dev/null +++ b/misc/ApiPortabilityAnalysis-AllProjects-October.08.2015.htm @@ -0,0 +1,1712 @@ + + + + .NET Portability Report + + +

+ .NET Portability Report +

+

+ Summary +

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Assembly.NET Core 5.0
Orleans91.36%
OrleansAzureUtils98.45%
OrleansCounterControl96.23%
OrleansEventSourcing100%
OrleansHost96.7%
OrleansManager99.42%
OrleansProviders98.37%
OrleansRuntime95.78%
OrleansTestingHost87.32%
OrleansZooKeeperUtils100%
+
+

+ Orleans +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Target type.NET Core 5.0Recommended changes
System.CodeDom.CodeTypeParameterCollection
Add(System.CodeDom.CodeTypeParameter)
#ctor
   
System.Management.ManagementObject
   
System.Data.DataRow
get_Item(System.String)
   
System.Data.IDataParameter
set_Direction(System.Data.ParameterDirection)
set_ParameterName(System.String)
set_DbType(System.Data.DbType)
set_Value(System.Object)
   
System.AppDomainRemove Usage
remove_UnhandledException(System.UnhandledExceptionEventHandler)Remove Usage
get_CurrentDomainRemove usage
remove_ReflectionOnlyAssemblyResolve(System.ResolveEventHandler)
ApplyPolicy(System.String)
add_DomainUnload(System.EventHandler)Use object with finalizer stored in static variable, or use app-model specific unload notifications (e.g. Application.Suspending event for modern apps)
get_SetupInformationRemove usage of AppDomain. Use alternate means for managing configuration information.
add_ReflectionOnlyAssemblyResolve(System.ResolveEventHandler)
ReflectionOnlyGetAssemblies
Unload(System.AppDomain)Remove usage
add_UnhandledException(System.UnhandledExceptionEventHandler)Remove usage
add_AssemblyResolve(System.ResolveEventHandler)Remove usage
add_ProcessExit(System.EventHandler)Use object with finalizer stored in static variable, or use app-model specific unload notifications (e.g. Application.Suspending event for modern apps)
GetAssembliesRemove usage
CreateInstanceFromAndUnwrap(System.String,System.String,System.Boolean,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo,System.Object[])
CreateDomain(System.String,System.Security.Policy.Evidence,System.AppDomainSetup)Remove usage
add_AssemblyLoad(System.AssemblyLoadEventHandler)
   
System.Type.GetTypeInfo().IsGenericType
get_IsGenericType.GetTypeInfo().IsGenericType
get_IsSerializable.GetTypeInfo().IsSerializable
get_IsPrimitive.GetTypeInfo().IsPrimitive
GetConstructor(System.Reflection.BindingFlags,System.Reflection.Binder,System.Type[],System.Reflection.ParameterModifier[])Use GetConstructor(Type[]) to search for public constructors by parameter type or filter the results of GetConstructors(BindingFlags) using LINQ for other queries.
GetMethod(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type[],System.Reflection.ParameterModifier[])Use GetMethod(string, Type[]) to search for public methods by name and parameter type or filter the results of GetMethods(BindingFlags) using LINQ for other queries.
get_ContainsGenericParameters.GetTypeInfo().ContainsGenericParameters
ReflectionOnlyGetType(System.String,System.Boolean,System.Boolean)
get_IsEnum.GetTypeInfo().IsEnum
get_IsNestedPrivate.GetTypeInfo().IsNestedPrivate
get_IsAbstract.GetTypeInfo().IsAbstract
get_IsNestedFamily.GetTypeInfo().IsNestedFamily
get_IsNotPublic.GetTypeInfo().IsNotPublic
get_ModuleUse System.Reflection.AssemblyExtensions.GetModules(), iterate over returned collection.
get_IsNestedPublic.GetTypeInfo().IsNestedPublic
get_GenericParameterAttributes
GetGenericParameterConstraints.GetTypeInfo().GetGenericParameterConstraints()
get_Assembly.GetTypeInfo().Assembly
get_UnderlyingSystemType
GetInterfaceMap(System.Type)
get_IsGenericTypeDefinition.GetTypeInfo().IsGenericTypeDefinition
get_BaseType.GetTypeInfo().BaseType
get_IsInterface.GetTypeInfo().IsInterface
GetTypeCode(System.Type)Use Type or RuntimeTypeHandle instead.
get_IsValueType.GetTypeInfo().IsValueType
get_IsClass.GetTypeInfo().IsClass
   
System.Transactions.TransactionOptions
set_Timeout(System.TimeSpan)
set_IsolationLevel(System.Transactions.IsolationLevel)
   
System.Xml.XmlTextWriter
#ctor(System.IO.TextWriter)
   
System.AssemblyLoadEventArgs
get_LoadedAssembly
   
System.Runtime.Serialization.FormatterServices
GetUninitializedObject(System.Type)
   
System.Data.InternalDataCollectionBase
GetEnumerator
   
System.SerializableAttributeRemove this attribute
   
System.Diagnostics.PerformanceCounter
#ctor(System.String,System.String,System.String,System.Boolean)
#ctor(System.String,System.String,System.Boolean)
get_CounterName
NextValue
get_RawValue
set_RawValue(System.Int64)
   
System.Diagnostics.PerformanceCounterCategory
#ctor(System.String)
Exists(System.String)
GetInstanceNames
GetCounters(System.String)
Delete(System.String)
Create(System.String,System.String,System.Diagnostics.PerformanceCounterCategoryType,System.Diagnostics.CounterCreationDataCollection)
   
System.Transactions.TransactionManager
get_MaximumTimeout
   
System.Management.ManagementObjectCollection.ManagementObjectEnumerator
get_Current
MoveNext
   
System.Management.ManagementObjectCollection
GetEnumerator
   
System.Reflection.Assembly
GetCustomAttributes(System.Boolean)
LoadWithPartialName(System.String)
GetExecutingAssemblytypeof(CurrentType).GetTypeInfo().Assembly
get_CodeBase
GetEntryAssembly
get_ReflectionOnly
ReflectionOnlyLoadFrom(System.String)
get_LocationRemove usage
ReflectionOnlyLoad(System.String)
GetTypesUse Assembly.DefinedTypes
LoadFrom(System.String)Use AssemblyLoadContext
CreateInstance(System.String)Use System.Activator.CreateInstance(Assembly.GetType()) on type you are interested in.
Load(System.String)use Assembly.Load(new AssemblyName(string))
GetType(System.String,System.Boolean)Use Assembly.GetType(string), throw if you receive null return value.
GetCallingAssembly
   
System.Data.Common.DbProviderFactories
GetFactory(System.String)
GetFactoryClasses
   
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
Deserialize(System.IO.Stream)
#ctor
set_Binder(System.Runtime.Serialization.SerializationBinder)
Serialize(System.IO.Stream,System.Object)
   
System.Net.Dns
GetHostAddresses(System.String)
   
System.EnvironmentUse Marshal.SizeOf(new IntPtr()) if needed
get_Is64BitOperatingSystemUse Marshal.SizeOf(new IntPtr()) if needed
get_MachineNameRemove, or use Environment.GetEnvironmentVariable("COMPUTERNAME")
get_UserName
GetFolderPath(System.Environment.SpecialFolder)
GetFolderPath(System.Environment.SpecialFolder,System.Environment.SpecialFolderOption)
get_VersionDo not use. Choose action based feature availability, not OS / Platform
get_CommandLine
GetCommandLineArgs
get_OSVersionDo not use. Choose action based feature availability, not OS / Platform
Exit(System.Int32)Use Environment.FailFast(string, Exception)
get_CurrentDirectoryUse Directory.GetCurrentDirectory()
   
System.Data.IDbDataParameter
set_Size(System.Int32)
   
System.Data.IDataRecord
get_Item(System.String)
GetBoolean(System.Int32)
GetOrdinal(System.String)
IsDBNull(System.Int32)
GetValue(System.Int32)
   
System.OperatingSystemDo not use. Couple behavior to feature availability, not OS version or Platform.
   
System.Xml.XmlNode
SelectNodes(System.String,System.Xml.XmlNamespaceManager)
   
System.Data.DataTable
get_Rows
   
System.Reflection.CustomAttributeData
GetCustomAttributes(System.Reflection.MemberInfo)
   
System.Reflection.AssemblyName
GetAssemblyName(System.String)
   
System.ExceptionFalse positive (GetType() from Object is sufficient)
GetTypeFalse positive (GetType() from Object is sufficient)
GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)Remove. Getting rid of other usage of SerializationInfo will remove the need for this method.
#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)Remove. Ctor overload taking SerializationInfo is not applicable in new surface area
   
System.Management.ManagementObjectSearcher
#ctor(System.String)
Get
   
System.Diagnostics.Trace
get_CorrelationManager
   
System.Threading.ThreadPool
GetAvailableThreads(System.Int32@,System.Int32@)
GetMinThreads(System.Int32@,System.Int32@)Change code to not depend on the size of the ThreadPool for functionality. Portable code needs to be able to run correctly on multiple different ThreadPool implementations, not all of which support this method.
SetMinThreads(System.Int32,System.Int32)Change code to not depend on the size of the ThreadPool for functionality. Portable code needs to be able to run correctly on multiple different ThreadPool implementations, not all of which support this method.
GetMaxThreads(System.Int32@,System.Int32@)Change code to not depend on the size of the ThreadPool for functionality. Portable code needs to be able to run correctly on multiple different ThreadPool implementations, not all of which support this method.
   
System.Runtime.Serialization.ISerializable
   
System.CodeDom.CodeTypeReference
#ctor(System.String)
   
System.AssemblyLoadEventHandler
#ctor(System.Object,System.IntPtr)
   
System.Runtime.Serialization.SerializationBinder
#ctor
   
System.Diagnostics.DebuggableAttribute
get_IsJITTrackingEnabled
   
System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute
#ctor
   
System.CodeDom.CodeTypeParameter
set_HasConstructorConstraint(System.Boolean)
get_Constraints
#ctor(System.String)
   
System.Management.PropertyDataCollection
get_Item(System.String)
   
System.ResolveEventHandlerUse AssemblyLoadContext
#ctor(System.Object,System.IntPtr)Use AssemblyLoadContext
   
System.Transactions.TransactionScope
#ctor(System.Transactions.TransactionScopeOption,System.Transactions.TransactionOptions)
   
System.Diagnostics.StackTraceCurrently there is no workaround, but we are working on it. Please check back.
#ctorCurrently there is no workaround, but we are working on it. Please check back.
#ctor(System.Boolean)
#ctor(System.Int32)
   
System.Data.IDataReader
   
System.Threading.ThreadThis is only reliable in SQL Server. Elsewhere, don't use it.
ResetAbortThis is only reliable in SQL Server. Elsewhere, don't use it.
Abort(System.Object)This is only reliable in SQL Server. Elsewhere, don't use it.
   
System.Data.IDbCommand
CreateParameter
get_Parameters
   
System.Diagnostics.ConsoleTraceListeneruseErrorStream ? new TextWriterTraceListener(Console.Error) : new TextWriterTraceListener(Console.Out)
   
System.CodeDom.CodeTypeReferenceCollection
Add(System.CodeDom.CodeTypeReference)
Add(System.String)
   
System.Runtime.Remoting.Messaging.CallContext
LogicalGetData(System.String)
FreeNamedDataSlot(System.String)
LogicalSetData(System.String,System.Object)
   
System.StringUse CultureInfo.TextInfo.ToLower(String) instead
ToLower(System.Globalization.CultureInfo)Use CultureInfo.TextInfo.ToLower(String) instead
ToString(System.IFormatProvider)Remove usage (does nothing)
   
System.Threading.ThreadAbortExceptionDo not use: exception cannot be caught since it is not thrown by framework, never throw this type. Thread.Abort is only reliable in SQL Server. Elsewhere, don't use it.
get_ExceptionState
   
System.Runtime.Serialization.SerializationInfoeither 1) Delete Serialization info from exceptions (since this can't be remoted) or 2) Use a different serialization technology if not for exceptions.
AddValue(System.String,System.Object,System.Type)either 1) Delete Serialization info from exceptions (since this can't be remoted) or 2) Use a different serialization technology if not for exceptions.
GetBoolean(System.String)either 1) Delete Serialization info from exceptions (since this can't be remoted) or 2) Use a different serialization technology if not for exceptions.
AddValue(System.String,System.Object)Remove serialization constructors on custom Exception types
GetString(System.String)Remove serialization constructors on custom Exception types
GetValue(System.String,System.Type)either 1) Delete Serialization info from exceptions (since this can't be remoted) or 2) Use a different serialization technology if not for exceptions.
   
System.UriTypeConverter
#ctor
   
System.MarshalByRefObjectRemove usage
#ctorRemove usage
   
System.Transactions.TransactionScopeOption
   
System.Data.DataRowCollection
   
System.Reflection.ParameterModifierUse an overload that does not take a ParameterModifier array.
   
System.Activator
CreateInstance(System.Type,System.Boolean)
   
System.Reflection.BinderUse an overload that does not take a Binder.
   
System.Diagnostics.CorrelationManager
get_ActivityId
set_ActivityId(System.Guid)
   
System.DelegateUse System.Reflection.RuntimeReflectionExtensions.GetMethodInfo
get_MethodUse System.Reflection.RuntimeReflectionExtensions.GetMethodInfo
   
System.Transactions.IsolationLevel
   
System.Console
set_Title(System.String)
ReadKey
   
System.Management.PropertyData
get_Value
   
System.Environment.SpecialFolderOption
   
System.Management.ManagementBaseObject
get_Properties
   
System.ResolveEventArgs
get_RequestingAssembly
get_NameUse AssemblyLoadContext
   
System.Data.IDataParameterCollection
   
System.Diagnostics.ProcessUse System.Diagnostics.Process.SafeHandle
get_HandleUse System.Diagnostics.Process.SafeHandle
   
System.Environment.SpecialFolder
   
Back to summary

+ OrleansAzureUtils +

+ + + + + + + + + +
Missing assemblies
Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed
Microsoft.WindowsAzure.Storage, Version=4.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Target type.NET Core 5.0Recommended changes
System.AppDomainRemove Usage
remove_UnhandledException(System.UnhandledExceptionEventHandler)Remove Usage
get_CurrentDomainRemove usage
remove_ReflectionOnlyAssemblyResolve(System.ResolveEventHandler)
ApplyPolicy(System.String)
add_DomainUnload(System.EventHandler)Use object with finalizer stored in static variable, or use app-model specific unload notifications (e.g. Application.Suspending event for modern apps)
get_SetupInformationRemove usage of AppDomain. Use alternate means for managing configuration information.
add_ReflectionOnlyAssemblyResolve(System.ResolveEventHandler)
ReflectionOnlyGetAssemblies
Unload(System.AppDomain)Remove usage
add_UnhandledException(System.UnhandledExceptionEventHandler)Remove usage
add_AssemblyResolve(System.ResolveEventHandler)Remove usage
add_ProcessExit(System.EventHandler)Use object with finalizer stored in static variable, or use app-model specific unload notifications (e.g. Application.Suspending event for modern apps)
GetAssembliesRemove usage
CreateInstanceFromAndUnwrap(System.String,System.String,System.Boolean,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo,System.Object[])
CreateDomain(System.String,System.Security.Policy.Evidence,System.AppDomainSetup)Remove usage
add_AssemblyLoad(System.AssemblyLoadEventHandler)
   
System.Web.HttpServerUtility
MapPath(System.String)
   
System.Reflection.Assembly
GetCustomAttributes(System.Boolean)
LoadWithPartialName(System.String)
GetExecutingAssemblytypeof(CurrentType).GetTypeInfo().Assembly
get_CodeBase
GetEntryAssembly
get_ReflectionOnly
ReflectionOnlyLoadFrom(System.String)
get_LocationRemove usage
ReflectionOnlyLoad(System.String)
GetTypesUse Assembly.DefinedTypes
LoadFrom(System.String)Use AssemblyLoadContext
CreateInstance(System.String)Use System.Activator.CreateInstance(Assembly.GetType()) on type you are interested in.
Load(System.String)use Assembly.Load(new AssemblyName(string))
GetType(System.String,System.Boolean)Use Assembly.GetType(string), throw if you receive null return value.
GetCallingAssembly
   
System.Reflection.EventInfo
GetRemoveMethod
GetAddMethod
   
System.ExceptionFalse positive (GetType() from Object is sufficient)
GetTypeFalse positive (GetType() from Object is sufficient)
GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)Remove. Getting rid of other usage of SerializationInfo will remove the need for this method.
#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)Remove. Ctor overload taking SerializationInfo is not applicable in new surface area
   
System.Web.HttpContext
get_Current
get_Server
   
System.Web.Hosting.HostingEnvironment
MapPath(System.String)
   
Back to summary

+ OrleansCounterControl +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Target type.NET Core 5.0Recommended changes
System.Reflection.Assembly
GetCustomAttributes(System.Boolean)
LoadWithPartialName(System.String)
GetExecutingAssemblytypeof(CurrentType).GetTypeInfo().Assembly
get_CodeBase
GetEntryAssembly
get_ReflectionOnly
ReflectionOnlyLoadFrom(System.String)
get_LocationRemove usage
ReflectionOnlyLoad(System.String)
GetTypesUse Assembly.DefinedTypes
LoadFrom(System.String)Use AssemblyLoadContext
CreateInstance(System.String)Use System.Activator.CreateInstance(Assembly.GetType()) on type you are interested in.
Load(System.String)use Assembly.Load(new AssemblyName(string))
GetType(System.String,System.Boolean)Use Assembly.GetType(string), throw if you receive null return value.
GetCallingAssembly
   
System.Console
set_Title(System.String)
ReadKey
   
System.ConsoleKeyInfo
   
Back to summary

+ OrleansHost +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Target type.NET Core 5.0Recommended changes
System.EnvironmentUse Marshal.SizeOf(new IntPtr()) if needed
get_Is64BitOperatingSystemUse Marshal.SizeOf(new IntPtr()) if needed
get_MachineNameRemove, or use Environment.GetEnvironmentVariable("COMPUTERNAME")
get_UserName
GetFolderPath(System.Environment.SpecialFolder)
GetFolderPath(System.Environment.SpecialFolder,System.Environment.SpecialFolderOption)
get_VersionDo not use. Choose action based feature availability, not OS / Platform
get_CommandLine
GetCommandLineArgs
get_OSVersionDo not use. Choose action based feature availability, not OS / Platform
Exit(System.Int32)Use Environment.FailFast(string, Exception)
get_CurrentDirectoryUse Directory.GetCurrentDirectory()
   
Back to summary

+ OrleansManager +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Target type.NET Core 5.0Recommended changes
System.EnvironmentUse Marshal.SizeOf(new IntPtr()) if needed
get_Is64BitOperatingSystemUse Marshal.SizeOf(new IntPtr()) if needed
get_MachineNameRemove, or use Environment.GetEnvironmentVariable("COMPUTERNAME")
get_UserName
GetFolderPath(System.Environment.SpecialFolder)
GetFolderPath(System.Environment.SpecialFolder,System.Environment.SpecialFolderOption)
get_VersionDo not use. Choose action based feature availability, not OS / Platform
get_CommandLine
GetCommandLineArgs
get_OSVersionDo not use. Choose action based feature availability, not OS / Platform
Exit(System.Int32)Use Environment.FailFast(string, Exception)
get_CurrentDirectoryUse Directory.GetCurrentDirectory()
   
Back to summary

+ OrleansProviders +

+ + + + + + + + + + + + + + + + + + + + + + + +
Target type.NET Core 5.0Recommended changes
System.Runtime.Serialization.FormatterServices
GetUninitializedObject(System.Type)
   
System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute
#ctor
   
System.MarshalByRefObjectRemove usage
#ctorRemove usage
   
Back to summary

+ OrleansRuntime +

+ + + + + + + + + +
Missing assemblies
Microsoft.Framework.DependencyInjection, Version=1.0.0.0, Culture=neutral, PublicKeyToken=38575508bf0a2155
Microsoft.Framework.DependencyInjection.Abstractions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=38575508bf0a2155
  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Target type.NET Core 5.0Recommended changes
System.AppDomainRemove Usage
remove_UnhandledException(System.UnhandledExceptionEventHandler)Remove Usage
get_CurrentDomainRemove usage
remove_ReflectionOnlyAssemblyResolve(System.ResolveEventHandler)
ApplyPolicy(System.String)
add_DomainUnload(System.EventHandler)Use object with finalizer stored in static variable, or use app-model specific unload notifications (e.g. Application.Suspending event for modern apps)
get_SetupInformationRemove usage of AppDomain. Use alternate means for managing configuration information.
add_ReflectionOnlyAssemblyResolve(System.ResolveEventHandler)
ReflectionOnlyGetAssemblies
Unload(System.AppDomain)Remove usage
add_UnhandledException(System.UnhandledExceptionEventHandler)Remove usage
add_AssemblyResolve(System.ResolveEventHandler)Remove usage
add_ProcessExit(System.EventHandler)Use object with finalizer stored in static variable, or use app-model specific unload notifications (e.g. Application.Suspending event for modern apps)
GetAssembliesRemove usage
CreateInstanceFromAndUnwrap(System.String,System.String,System.Boolean,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo,System.Object[])
CreateDomain(System.String,System.Security.Policy.Evidence,System.AppDomainSetup)Remove usage
add_AssemblyLoad(System.AssemblyLoadEventHandler)
   
System.Type.GetTypeInfo().IsGenericType
get_IsGenericType.GetTypeInfo().IsGenericType
get_IsSerializable.GetTypeInfo().IsSerializable
get_IsPrimitive.GetTypeInfo().IsPrimitive
GetConstructor(System.Reflection.BindingFlags,System.Reflection.Binder,System.Type[],System.Reflection.ParameterModifier[])Use GetConstructor(Type[]) to search for public constructors by parameter type or filter the results of GetConstructors(BindingFlags) using LINQ for other queries.
GetMethod(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Type[],System.Reflection.ParameterModifier[])Use GetMethod(string, Type[]) to search for public methods by name and parameter type or filter the results of GetMethods(BindingFlags) using LINQ for other queries.
get_ContainsGenericParameters.GetTypeInfo().ContainsGenericParameters
ReflectionOnlyGetType(System.String,System.Boolean,System.Boolean)
get_IsEnum.GetTypeInfo().IsEnum
get_IsNestedPrivate.GetTypeInfo().IsNestedPrivate
get_IsAbstract.GetTypeInfo().IsAbstract
get_IsNestedFamily.GetTypeInfo().IsNestedFamily
get_IsNotPublic.GetTypeInfo().IsNotPublic
get_ModuleUse System.Reflection.AssemblyExtensions.GetModules(), iterate over returned collection.
get_IsNestedPublic.GetTypeInfo().IsNestedPublic
get_GenericParameterAttributes
GetGenericParameterConstraints.GetTypeInfo().GetGenericParameterConstraints()
get_Assembly.GetTypeInfo().Assembly
get_UnderlyingSystemType
GetInterfaceMap(System.Type)
get_IsGenericTypeDefinition.GetTypeInfo().IsGenericTypeDefinition
get_BaseType.GetTypeInfo().BaseType
get_IsInterface.GetTypeInfo().IsInterface
GetTypeCode(System.Type)Use Type or RuntimeTypeHandle instead.
get_IsValueType.GetTypeInfo().IsValueType
get_IsClass.GetTypeInfo().IsClass
   
System.Xml.XmlTextWriter
#ctor(System.IO.TextWriter)
   
System.Diagnostics.CounterCreationDataCollection
#ctor
AddRange(System.Diagnostics.CounterCreationData[])
   
System.AssemblyLoadEventArgs
get_LoadedAssembly
   
System.Runtime.Serialization.FormatterServices
GetUninitializedObject(System.Type)
   
System.Diagnostics.PerformanceCounter
#ctor(System.String,System.String,System.String,System.Boolean)
#ctor(System.String,System.String,System.Boolean)
get_CounterName
NextValue
get_RawValue
set_RawValue(System.Int64)
   
System.Diagnostics.PerformanceCounterCategory
#ctor(System.String)
Exists(System.String)
GetInstanceNames
GetCounters(System.String)
Delete(System.String)
Create(System.String,System.String,System.Diagnostics.PerformanceCounterCategoryType,System.Diagnostics.CounterCreationDataCollection)
   
System.Configuration.Install.InstallContext
LogMessage(System.String)
   
System.Configuration.Install.Installer
#ctor
get_Context
get_Installers
   
System.Net.ServicePointManager
set_Expect100Continue(System.Boolean)
set_DefaultConnectionLimit(System.Int32)
set_UseNagleAlgorithm(System.Boolean)
   
System.Reflection.Assembly
GetCustomAttributes(System.Boolean)
LoadWithPartialName(System.String)
GetExecutingAssemblytypeof(CurrentType).GetTypeInfo().Assembly
get_CodeBase
GetEntryAssembly
get_ReflectionOnly
ReflectionOnlyLoadFrom(System.String)
get_LocationRemove usage
ReflectionOnlyLoad(System.String)
GetTypesUse Assembly.DefinedTypes
LoadFrom(System.String)Use AssemblyLoadContext
CreateInstance(System.String)Use System.Activator.CreateInstance(Assembly.GetType()) on type you are interested in.
Load(System.String)use Assembly.Load(new AssemblyName(string))
GetType(System.String,System.Boolean)Use Assembly.GetType(string), throw if you receive null return value.
GetCallingAssembly
   
System.EnvironmentUse Marshal.SizeOf(new IntPtr()) if needed
get_Is64BitOperatingSystemUse Marshal.SizeOf(new IntPtr()) if needed
get_MachineNameRemove, or use Environment.GetEnvironmentVariable("COMPUTERNAME")
get_UserName
GetFolderPath(System.Environment.SpecialFolder)
GetFolderPath(System.Environment.SpecialFolder,System.Environment.SpecialFolderOption)
get_VersionDo not use. Choose action based feature availability, not OS / Platform
get_CommandLine
GetCommandLineArgs
get_OSVersionDo not use. Choose action based feature availability, not OS / Platform
Exit(System.Int32)Use Environment.FailFast(string, Exception)
get_CurrentDirectoryUse Directory.GetCurrentDirectory()
   
System.OperatingSystemDo not use. Couple behavior to feature availability, not OS version or Platform.
   
System.ExceptionFalse positive (GetType() from Object is sufficient)
GetTypeFalse positive (GetType() from Object is sufficient)
GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)Remove. Getting rid of other usage of SerializationInfo will remove the need for this method.
#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)Remove. Ctor overload taking SerializationInfo is not applicable in new surface area
   
System.ComponentModel.RunInstallerAttribute
#ctor(System.Boolean)
   
System.Threading.ThreadPool
GetAvailableThreads(System.Int32@,System.Int32@)
GetMinThreads(System.Int32@,System.Int32@)Change code to not depend on the size of the ThreadPool for functionality. Portable code needs to be able to run correctly on multiple different ThreadPool implementations, not all of which support this method.
SetMinThreads(System.Int32,System.Int32)Change code to not depend on the size of the ThreadPool for functionality. Portable code needs to be able to run correctly on multiple different ThreadPool implementations, not all of which support this method.
GetMaxThreads(System.Int32@,System.Int32@)Change code to not depend on the size of the ThreadPool for functionality. Portable code needs to be able to run correctly on multiple different ThreadPool implementations, not all of which support this method.
   
System.Runtime.Serialization.ISerializable
   
System.AssemblyLoadEventHandler
#ctor(System.Object,System.IntPtr)
   
System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute
#ctor
   
System.ResolveEventHandlerUse AssemblyLoadContext
#ctor(System.Object,System.IntPtr)Use AssemblyLoadContext
   
System.Diagnostics.CounterCreationData
#ctor(System.String,System.String,System.Diagnostics.PerformanceCounterType)
   
System.Diagnostics.StackTraceCurrently there is no workaround, but we are working on it. Please check back.
#ctorCurrently there is no workaround, but we are working on it. Please check back.
#ctor(System.Boolean)
#ctor(System.Int32)
   
System.Diagnostics.PerformanceCounterInstaller
#ctor
set_CategoryName(System.String)
get_Counters
set_CategoryType(System.Diagnostics.PerformanceCounterCategoryType)
   
System.Threading.ThreadThis is only reliable in SQL Server. Elsewhere, don't use it.
ResetAbortThis is only reliable in SQL Server. Elsewhere, don't use it.
Abort(System.Object)This is only reliable in SQL Server. Elsewhere, don't use it.
   
System.Configuration.Install.InstallerCollection
Add(System.Configuration.Install.Installer)
   
System.Data.InvalidExpressionException
#ctor(System.String)
   
System.StringUse CultureInfo.TextInfo.ToLower(String) instead
ToLower(System.Globalization.CultureInfo)Use CultureInfo.TextInfo.ToLower(String) instead
ToString(System.IFormatProvider)Remove usage (does nothing)
   
System.Threading.ThreadAbortExceptionDo not use: exception cannot be caught since it is not thrown by framework, never throw this type. Thread.Abort is only reliable in SQL Server. Elsewhere, don't use it.
get_ExceptionState
   
System.UnhandledExceptionEventArgsAvoid usage of the UnhandledException Event, handle exceptions directly at scope of method being called
get_ExceptionObjectAvoid usage of the UnhandledException Event, handle exceptions directly at scope of method being called
   
System.Runtime.Serialization.SerializationInfoeither 1) Delete Serialization info from exceptions (since this can't be remoted) or 2) Use a different serialization technology if not for exceptions.
AddValue(System.String,System.Object,System.Type)either 1) Delete Serialization info from exceptions (since this can't be remoted) or 2) Use a different serialization technology if not for exceptions.
GetBoolean(System.String)either 1) Delete Serialization info from exceptions (since this can't be remoted) or 2) Use a different serialization technology if not for exceptions.
AddValue(System.String,System.Object)Remove serialization constructors on custom Exception types
GetString(System.String)Remove serialization constructors on custom Exception types
GetValue(System.String,System.Type)either 1) Delete Serialization info from exceptions (since this can't be remoted) or 2) Use a different serialization technology if not for exceptions.
   
System.MarshalByRefObjectRemove usage
#ctorRemove usage
   
System.SystemException
#ctor(System.String)
   
System.Diagnostics.PerformanceCounterCategoryType
   
System.DelegateUse System.Reflection.RuntimeReflectionExtensions.GetMethodInfo
get_MethodUse System.Reflection.RuntimeReflectionExtensions.GetMethodInfo
   
System.Diagnostics.PerformanceCounterType
   
System.UnhandledExceptionEventHandlerAvoid usage of the UnhandledException Event, handle exceptions directly at scope of method being called
#ctor(System.Object,System.IntPtr)Avoid usage of the UnhandledException Event, handle exceptions directly at scope of method being called
   
System.ResolveEventArgs
get_RequestingAssembly
get_NameUse AssemblyLoadContext
   
Back to summary

+ OrleansTestingHost +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Target type.NET Core 5.0Recommended changes
System.Runtime.Remoting.RemotingException
   
System.AppDomainRemove Usage
remove_UnhandledException(System.UnhandledExceptionEventHandler)Remove Usage
get_CurrentDomainRemove usage
remove_ReflectionOnlyAssemblyResolve(System.ResolveEventHandler)
ApplyPolicy(System.String)
add_DomainUnload(System.EventHandler)Use object with finalizer stored in static variable, or use app-model specific unload notifications (e.g. Application.Suspending event for modern apps)
get_SetupInformationRemove usage of AppDomain. Use alternate means for managing configuration information.
add_ReflectionOnlyAssemblyResolve(System.ResolveEventHandler)
ReflectionOnlyGetAssemblies
Unload(System.AppDomain)Remove usage
add_UnhandledException(System.UnhandledExceptionEventHandler)Remove usage
add_AssemblyResolve(System.ResolveEventHandler)Remove usage
add_ProcessExit(System.EventHandler)Use object with finalizer stored in static variable, or use app-model specific unload notifications (e.g. Application.Suspending event for modern apps)
GetAssembliesRemove usage
CreateInstanceFromAndUnwrap(System.String,System.String,System.Boolean,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo,System.Object[])
CreateDomain(System.String,System.Security.Policy.Evidence,System.AppDomainSetup)Remove usage
add_AssemblyLoad(System.AssemblyLoadEventHandler)
   
System.Net.ServicePointManager
set_Expect100Continue(System.Boolean)
set_DefaultConnectionLimit(System.Int32)
set_UseNagleAlgorithm(System.Boolean)
   
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
Deserialize(System.IO.Stream)
#ctor
set_Binder(System.Runtime.Serialization.SerializationBinder)
Serialize(System.IO.Stream,System.Object)
   
System.EnvironmentUse Marshal.SizeOf(new IntPtr()) if needed
get_Is64BitOperatingSystemUse Marshal.SizeOf(new IntPtr()) if needed
get_MachineNameRemove, or use Environment.GetEnvironmentVariable("COMPUTERNAME")
get_UserName
GetFolderPath(System.Environment.SpecialFolder)
GetFolderPath(System.Environment.SpecialFolder,System.Environment.SpecialFolderOption)
get_VersionDo not use. Choose action based feature availability, not OS / Platform
get_CommandLine
GetCommandLineArgs
get_OSVersionDo not use. Choose action based feature availability, not OS / Platform
Exit(System.Int32)Use Environment.FailFast(string, Exception)
get_CurrentDirectoryUse Directory.GetCurrentDirectory()
   
System.AppDomainSetupRemove usage
set_ApplicationBase(System.String)Remove usage
get_ConfigurationFileRemove usage
get_ShadowCopyDirectories
set_ConfigurationFile(System.String)Remove usage
get_ShadowCopyFiles
set_CachePath(System.String)
set_ShadowCopyFiles(System.String)
#ctorRemove usage
get_CachePath
set_ShadowCopyDirectories(System.String)
   
System.Threading.ThreadPool
GetAvailableThreads(System.Int32@,System.Int32@)
GetMinThreads(System.Int32@,System.Int32@)Change code to not depend on the size of the ThreadPool for functionality. Portable code needs to be able to run correctly on multiple different ThreadPool implementations, not all of which support this method.
SetMinThreads(System.Int32,System.Int32)Change code to not depend on the size of the ThreadPool for functionality. Portable code needs to be able to run correctly on multiple different ThreadPool implementations, not all of which support this method.
GetMaxThreads(System.Int32@,System.Int32@)Change code to not depend on the size of the ThreadPool for functionality. Portable code needs to be able to run correctly on multiple different ThreadPool implementations, not all of which support this method.
   
System.Diagnostics.ProcessStartInfo
set_ErrorDialog(System.Boolean)
set_WindowStyle(System.Diagnostics.ProcessWindowStyle)Remove ShellExecute usage (Can Pinvoke if needed)
   
System.Runtime.Serialization.IFormatter
Deserialize(System.IO.Stream)
Serialize(System.IO.Stream,System.Object)
   
System.UnhandledExceptionEventArgsAvoid usage of the UnhandledException Event, handle exceptions directly at scope of method being called
get_ExceptionObjectAvoid usage of the UnhandledException Event, handle exceptions directly at scope of method being called
   
System.MarshalByRefObjectRemove usage
#ctorRemove usage
   
System.Diagnostics.ProcessWindowStyleRemove ShellExecute usage (Can Pinvoke if needed)
   
System.Reflection.BinderUse an overload that does not take a Binder.
   
System.Security.Policy.Evidence
   
System.UnhandledExceptionEventHandlerAvoid usage of the UnhandledException Event, handle exceptions directly at scope of method being called
#ctor(System.Object,System.IntPtr)Avoid usage of the UnhandledException Event, handle exceptions directly at scope of method being called
   
System.Environment.SpecialFolder
   
Back to summary +
\ No newline at end of file