.NET Portability Report

Summary

Assembly.NET Core 5.0.NET Core (Cross-platform) 5.0.NET Framework 4.6.1.NET Native 1.0ASP.NET 5 1.0
Orleans93.47%93.42%100%89.4%93.47%

Orleans

Target type.NET Core 5.0.NET Core (Cross-platform) 5.0.NET Framework 4.6.1.NET Native 1.0ASP.NET 5 1.0Recommended changes
System.Net.NetworkInformation.UnicastIPAddressInformationCollection
GetEnumerator
       
System.AppDomainUse object with finalizer stored in static variable, or use app-model specific unload notifications (e.g. Application.Suspending event for modern apps)
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)
GetAssembliesRemove usage
remove_ReflectionOnlyAssemblyResolve(System.ResolveEventHandler)
add_AssemblyLoad(System.AssemblyLoadEventHandler)
add_AssemblyResolve(System.ResolveEventHandler)Remove usage
ApplyPolicy(System.String)
get_CurrentDomainRemove usage
ReflectionOnlyGetAssemblies
add_ReflectionOnlyAssemblyResolve(System.ResolveEventHandler)
       
System.Management.ManagementObjectSearcher
#ctor(System.String)
Get
       
System.Type.GetTypeInfo().IsGenericTypeDefinition
get_IsGenericTypeDefinition.GetTypeInfo().IsGenericTypeDefinition
get_IsGenericType.GetTypeInfo().IsGenericType
get_IsVisible.GetTypeInfo().IsVisible
get_IsValueType.GetTypeInfo().IsValueType
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_IsNestedFamily.GetTypeInfo().IsNestedFamily
get_IsNotPublic.GetTypeInfo().IsNotPublic
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.
get_IsClass.GetTypeInfo().IsClass
get_IsAbstract.GetTypeInfo().IsAbstract
get_IsPrimitive.GetTypeInfo().IsPrimitive
get_Assembly.GetTypeInfo().Assembly
get_IsInterface.GetTypeInfo().IsInterface
get_IsEnum.GetTypeInfo().IsEnum
GetInterfaceMap(System.Type)
ReflectionOnlyGetType(System.String,System.Boolean,System.Boolean)
get_IsNestedPrivate.GetTypeInfo().IsNestedPrivate
get_BaseType.GetTypeInfo().BaseType
get_IsSerializable.GetTypeInfo().IsSerializable
GetTypeCode(System.Type)Use Type or RuntimeTypeHandle instead.
get_IsNestedPublic.GetTypeInfo().IsNestedPublic
get_UnderlyingSystemType
get_ModuleUse System.Reflection.AssemblyExtensions.GetModules(), iterate over returned collection.
       
System.Reflection.Assembly
GetReferencedAssemblies
GetType(System.String,System.Boolean)Use Assembly.GetType(string), throw if you receive null return value.
get_LocationRemove usage
GetExecutingAssemblytypeof(CurrentType).GetTypeInfo().Assembly
ReflectionOnlyLoadFrom(System.String)
ReflectionOnlyLoad(System.String)
GetCustomAttributes(System.Boolean)
LoadFrom(System.String)Use AssemblyLoadContext
GetCallingAssembly
get_ReflectionOnly
GetEntryAssembly
       
System.Security.Cryptography.RandomNumberGenerator
GetBytes(System.Byte[])
Create
       
System.EnvironmentDo not use. Choose action based feature availability, not OS / Platform
get_OSVersionDo not use. Choose action based feature availability, not OS / Platform
get_VersionDo not use. Choose action based feature availability, not OS / Platform
GetFolderPath(System.Environment.SpecialFolder,System.Environment.SpecialFolderOption)
get_UserName
       
System.AssemblyLoadEventArgs
get_LoadedAssembly
       
System.Activator
CreateInstance(System.Type,System.Boolean)
       
System.ResolveEventArgsUse AssemblyLoadContext
get_NameUse AssemblyLoadContext
get_RequestingAssembly
       
System.Diagnostics.CorrelationManager
set_ActivityId(System.Guid)
get_ActivityId
       
System.Net.Sockets.Socket
Connect(System.Net.EndPoint)
Send(System.Collections.Generic.IList{System.ArraySegment{System.Byte}})
Disconnect(System.Boolean)
Receive(System.Collections.Generic.IList{System.ArraySegment{System.Byte}})
SetSocketOption(System.Net.Sockets.SocketOptionLevel,System.Net.Sockets.SocketOptionName,System.Boolean)
EndReceive(System.IAsyncResult)
BeginReceive(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)
set_LingerState(System.Net.Sockets.LingerOption)
Send(System.Byte[])
       
System.Net.Dns
GetHostAddressesAsync(System.String)
GetHostName
       
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
Serialize(System.IO.Stream,System.Object)
Deserialize(System.IO.Stream)
#ctor
set_Binder(System.Runtime.Serialization.SerializationBinder)
       
System.Diagnostics.Trace
get_CorrelationManager
TraceError(System.String,System.Object[])
TraceWarning(System.String)
get_Listeners
TraceError(System.String)
TraceInformation(System.String)
Flush
WriteLine(System.String)
       
System.Management.ManagementObjectCollection.ManagementObjectEnumerator
MoveNext
get_Current
       
System.Runtime.Remoting.Messaging.CallContext
FreeNamedDataSlot(System.String)
LogicalSetData(System.String,System.Object)
LogicalGetData(System.String)
       
System.Threading.Thread
get_CurrentThread
set_Name(System.String)
Start(System.Object)
Sleep(System.TimeSpan)
get_ManagedThreadId
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.
set_IsBackground(System.Boolean)
#ctor(System.Threading.ParameterizedThreadStart)
       
System.Diagnostics.FileVersionInfoCurrently there is no workaround, but we are working on it. Please check back.
GetVersionInfo(System.String)Currently there is no workaround, but we are working on it. Please check back.
get_ProductVersion
get_FileVersionCurrently there is no workaround, but we are working on it. Please check back.
       
System.Threading.WaitCallback
#ctor(System.Object,System.IntPtr)
       
System.Diagnostics.PerformanceCounterCategory
GetInstanceNames
#ctor(System.String)
GetCounters(System.String)
       
System.Net.Sockets.SocketOptionName
       
System.Reflection.PropertyInfoUse PropertyInfo.SetMethod property
GetSetMethodUse PropertyInfo.SetMethod property
       
System.Management.PropertyDataCollection
get_Item(System.String)
       
System.Net.NetworkInformation.NetworkInterface
GetAllNetworkInterfaces
GetIPProperties
get_Name
get_LoopbackInterfaceIndex
get_OperationalStatus
       
System.AssemblyLoadEventHandler
#ctor(System.Object,System.IntPtr)
       
System.Diagnostics.ProcessUse System.Diagnostics.Process.SafeHandle
get_HandleUse System.Diagnostics.Process.SafeHandle
GetCurrentProcess
get_ProcessName
get_Id
       
System.Security.Cryptography.SHA256
Create
       
System.Threading.ThreadPoolChange 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.
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.
GetAvailableThreads(System.Int32@,System.Int32@)
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.
QueueUserWorkItem(System.Threading.WaitCallback,System.Object)
       
System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute
#ctor
       
System.Net.NetworkInformation.IPAddressInformation
get_Address
       
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.
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.
GetString(System.String)Remove serialization constructors on custom Exception types
AddValue(System.String,System.Object)Remove serialization constructors on custom Exception types
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.
       
System.Diagnostics.TraceListenerCollection
get_Count
GetEnumerator
Add(System.Diagnostics.TraceListener)
       
System.ResolveEventHandlerUse AssemblyLoadContext
#ctor(System.Object,System.IntPtr)Use AssemblyLoadContext
       
System.Diagnostics.DefaultTraceListener
#ctor
       
System.MarshalByRefObjectRemove usage: Remoting is no longer available
#ctorRemove usage
       
System.Reflection.CustomAttributeData
GetCustomAttributes(System.Reflection.MemberInfo)
       
System.Security.Cryptography.HashAlgorithm
ComputeHash(System.Byte[])
Dispose
       
System.Threading.ParameterizedThreadStart
#ctor(System.Object,System.IntPtr)
       
System.Runtime.Serialization.SerializationBinder
#ctor
       
System.Management.ManagementObjectCollection
GetEnumerator
       
System.Console
ResetColor
set_Title(System.String)
WriteLine(System.String,System.Object,System.Object)
set_ForegroundColor(System.ConsoleColor)Currently there is no workaround, but we are working on it. Please check back.
WriteLine(System.String,System.Object[])
WriteLine(System.String)
WriteLine(System.String,System.Object)
       
System.Environment.SpecialFolder
       
System.Environment.SpecialFolderOption
       
System.OperatingSystemDo not use. Couple behavior to feature availability, not OS version or Platform.
       
System.Net.NetworkInformation.IPInterfaceProperties
get_UnicastAddresses
       
System.ExceptionRemove. Getting rid of other usage of SerializationInfo will remove the need for this method.
GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)Remove. Getting rid of other usage of SerializationInfo will remove the need for this method.
GetTypeFalse positive (GetType() from Object is sufficient)
#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)Remove. Ctor overload taking SerializationInfo is not applicable in new surface area
       
System.Diagnostics.PerformanceCounter
get_RawValue
get_CounterName
#ctor(System.String,System.String,System.String,System.Boolean)
#ctor(System.String,System.String,System.Boolean)
NextValue
       
System.Net.Sockets.LingerOption
#ctor(System.Boolean,System.Int32)
       
System.Net.Sockets.SocketOptionLevel
       
System.Net.NetworkInformation.OperationalStatus
       
System.Net.Sockets.SocketFlags
       
System.Diagnostics.StackTraceCurrently there is no workaround, but we are working on it. Please check back.
#ctor(System.Boolean)
       
System.Runtime.Serialization.ISerializable
       
System.Reflection.ParameterModifierUse an overload that does not take a ParameterModifier array.
       
System.Reflection.AssemblyName
GetAssemblyName(System.String)
       
System.Reflection.BinderUse an overload that does not take a Binder.
       
System.Management.PropertyData
get_Value
       
System.DelegateUse System.Reflection.RuntimeReflectionExtensions.GetMethodInfo
get_MethodUse System.Reflection.RuntimeReflectionExtensions.GetMethodInfo
       
System.Net.NetworkInformation.UnicastIPAddressInformation
       
System.Management.ManagementBaseObject
get_Properties
       
System.Threading.ThreadState
       
System.Diagnostics.ConsoleTraceListeneruseErrorStream ? new TextWriterTraceListener(Console.Error) : new TextWriterTraceListener(Console.Out)
       
System.Runtime.Serialization.FormatterServices
GetUninitializedObject(System.Type)
       
System.Xml.XmlNode
SelectNodes(System.String,System.Xml.XmlNamespaceManager)
       
System.ConsoleColorCurrently there is no workaround, but we are working on it. Please check back.
       
System.Diagnostics.TraceListener
       
System.Diagnostics.DebuggableAttribute
get_IsJITTrackingEnabled
       
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.
       
System.Management.ManagementObject
       
Back to summary