60 private readonly
long _id;
409 return $"\"{Name}\" {GetType()} #{_id}";
494 byte[]
array =
new byte[num];
555 target.RaiseUnloadEvent();
575 s_asyncLocalCurrent.Value =
value;
603 [
UnconditionalSuppressMessage(
"SingleFile",
"IL3000: Avoid accessing Assembly file path when publishing as a single file", Justification =
"The code handles the Assembly.Location equals null")]
608 if (resolving !=
null)
689 [
UnconditionalSuppressMessage(
"SingleFile",
"IL3000: Avoid accessing Assembly file path when publishing as a single file", Justification =
"The code handles the Assembly.Location equals null")]
715 [
UnconditionalSuppressMessage(
"ReflectionAnalysis",
"IL2026:RequiresUnreferencedCode", Justification =
"Satellite assemblies have no code in them and loading is not a problem")]
716 [
UnconditionalSuppressMessage(
"SingleFile",
"IL3000: Avoid accessing Assembly file path when publishing as a single file", Justification =
"This call is fine because native call runs before this and checks BindSatelliteResourceFromBundle")]
748 if (resolvingUnmanagedDll !=
null)
static AppDomain CurrentDomain
bool ICollection< KeyValuePair< TKey, TValue > >. Remove(KeyValuePair< TKey, TValue > keyValuePair)
void Add(TKey key, TValue value)
static ActivityTracker Instance
static readonly NativeRuntimeEventSource Log
static void SuppressFinalize(object obj)
static bool FileExists(string fullPath)
static bool IsCaseSensitive
static bool IsPartiallyQualified(ReadOnlySpan< char > path)
static string Combine(string path1, string path2)
static ? string GetDirectoryName(string? path)
static AssemblyName GetAssemblyName(string assemblyFile)
static RuntimeAssembly InternalLoad(string assemblyName, ref StackCrawlMark stackMark, AssemblyLoadContext assemblyLoadContext=null)
static IntPtr Load(string libraryPath)
Assembly GetFirstResolvedAssemblyFromResolvingEvent(AssemblyName assemblyName)
virtual ? Assembly Load(AssemblyName assemblyName)
readonly bool _isCollectible
static volatile Dictionary< long, WeakReference< AssemblyLoadContext > > s_allContexts
static IntPtr ResolveUnmanagedDllUsingEvent(string unmanagedDllName, Assembly assembly, IntPtr gchManagedAssemblyLoadContext)
AssemblyLoadContext(string? name, bool isCollectible=false)
static ? ResolveEventHandler AssemblyResolve
Assembly ResolveUsingLoad(AssemblyName assemblyName)
static bool TraceAssemblyLoadFromResolveHandlerInvoked(string assemblyName, bool isTrackedAssembly, string requestingAssemblyPath, string requestedAssemblyPath)
Func< AssemblyLoadContext, AssemblyName, Assembly?>? Resolving
AssemblyLoadContext(bool isCollectible)
static bool TraceAssemblyResolveHandlerInvoked(string assemblyName, string handlerName, string resultAssemblyName, string resultAssemblyPath)
void StartProfileOptimization(string? profile)
static AsyncLocal< AssemblyLoadContext > s_asyncLocalCurrent
Assembly LoadFromAssemblyName(AssemblyName assemblyName)
static void StartAssemblyLoad(ref Guid activityId, ref Guid relatedActivityId)
static bool TraceSatelliteSubdirectoryPathProbed(string filePath, int hResult)
static Assembly Resolve(IntPtr gchManagedAssemblyLoadContext, AssemblyName assemblyName)
static void LoadFromPath(IntPtr ptrNativeAssemblyLoadContext, string ilPath, string niPath, ObjectHandleOnStack retAssembly)
AssemblyLoadContext(bool representsTPALoadContext, bool isCollectible, string name)
static Assembly ResolveSatelliteAssembly(IntPtr gchManagedAssemblyLoadContext, AssemblyName assemblyName)
static ? AssemblyLoadContext CurrentContextualReflectionContext
readonly IntPtr _nativeAssemblyLoadContext
Assembly LoadFromStream(Stream assembly)
static RuntimeAssembly OnAssemblyResolve(RuntimeAssembly assembly, string assemblyFullName)
static void InternalStartProfile(string profile, IntPtr ptrNativeAssemblyLoadContext)
static Assembly ResolveUsingResolvingEvent(IntPtr gchManagedAssemblyLoadContext, AssemblyName assemblyName)
static IntPtr ResolveUnmanagedDll(string unmanagedDllName, IntPtr gchManagedAssemblyLoadContext)
static ContextualReflectionScope EnterContextualReflection(Assembly? activating)
static IEnumerable< AssemblyLoadContext > All
Assembly InternalLoadFromPath(string assemblyPath, string nativeImagePath)
Func< Assembly, string, IntPtr >? _resolvingUnmanagedDll
static Dictionary< long, WeakReference< AssemblyLoadContext > > AllContexts
const string AssemblyLoadName
static ? AssemblyLoadContext GetLoadContext(Assembly assembly)
static bool IsTracingEnabled()
static void LoadFromStream(IntPtr ptrNativeAssemblyLoadContext, IntPtr ptrAssemblyArray, int iAssemblyArrayLen, IntPtr ptrSymbols, int iSymbolArrayLen, ObjectHandleOnStack retAssembly)
IntPtr GetResolvedUnmanagedDll(Assembly assembly, string unmanagedDllName)
static Assembly ValidateAssemblyNameWithSimpleName(Assembly assembly, string requestedSimpleName)
static RuntimeAssembly InvokeResolveEvent(ResolveEventHandler eventHandler, RuntimeAssembly assembly, string name)
static void InitializeDefaultContext()
static AssemblyName GetAssemblyName(string assemblyPath)
static IntPtr GetLoadContextForAssembly(QCallAssembly assembly)
static bool TraceResolvingHandlerInvoked(string assemblyName, string handlerName, string alcName, string resultAssemblyName, string resultAssemblyPath)
static ? ResolveEventHandler ResourceResolve
Assembly LoadFromInMemoryModule(IntPtr moduleHandle)
Assembly LoadFromAssemblyPath(string assemblyPath)
static void StopAssemblyLoad(ref Guid activityId)
static void OnAssemblyLoad(RuntimeAssembly assembly)
IntPtr LoadUnmanagedDllFromPath(string unmanagedDllPath)
Action< AssemblyLoadContext >? Unloading
Assembly LoadFromNativeImagePath(string nativeImagePath, string? assemblyPath)
Assembly ResolveSatelliteAssembly(AssemblyName assemblyName)
static IntPtr LoadFromInMemoryModuleInternal(IntPtr ptrNativeAssemblyLoadContext, IntPtr hModule, ObjectHandleOnStack retAssembly)
virtual IntPtr LoadUnmanagedDll(string unmanagedDllName)
static RuntimeAssembly GetRuntimeAssembly(Assembly asm)
Func< AssemblyLoadContext, AssemblyName, Assembly >? _resolving
override string ToString()
static void SetCurrentContextualReflectionContext(AssemblyLoadContext value)
Assembly ResolveUsingEvent(AssemblyName assemblyName)
Assembly LoadFromStream(Stream assembly, Stream? assemblySymbols)
Func< Assembly, string, IntPtr >? ResolvingUnmanagedDll
static void PrepareForAssemblyLoadContextRelease(IntPtr ptrNativeAssemblyLoadContext, IntPtr ptrAssemblyLoadContextStrong)
readonly object _unloadLock
static RuntimeAssembly OnResourceResolve(RuntimeAssembly assembly, string resourceName)
Action< AssemblyLoadContext >? _unloading
static void OnProcessExit()
static AssemblyLoadContext Default
ContextualReflectionScope EnterContextualReflection()
static RuntimeAssembly OnTypeResolve(RuntimeAssembly assembly, string typeName)
static ? AssemblyLoadEventHandler AssemblyLoad
static void InternalSetProfileRoot(string directoryPath)
static Assembly[] GetLoadedAssemblies()
unsafe Assembly InternalLoad(ReadOnlySpan< byte > arrAssembly, ReadOnlySpan< byte > arrSymbols)
void SetProfileOptimizationRoot(string directoryPath)
static ? ResolveEventHandler TypeResolve
static IntPtr InitializeAssemblyLoadContext(IntPtr ptrAssemblyLoadContext, bool fRepresentsTPALoadContext, bool isCollectible)
static readonly AssemblyLoadContext s_loadContext
static string Format(string resourceFormat, object p1)
static string AssemblyLoadContext_Unload_CannotUnloadIfNotCollectible
static string Argument_EmptyPath
static string Argument_CustomAssemblyLoadContextRequestedNameMismatch
static string AssemblyLoadContext_Verify_NotUnloading
static string Argument_AbsolutePathRequired
static string BadImageFormat_BadILFormat
static string Arg_MustBeRuntimeAssembly
static string ArgumentNull_AssemblyNameName
static int CompareExchange(ref int location1, int value, int comparand)
static int Exchange(ref int location1, int value)
delegate? Assembly ResolveEventHandler(object? sender, ResolveEventArgs args)
delegate void AssemblyLoadEventHandler(object? sender, AssemblyLoadEventArgs args)
static readonly IntPtr Zero
static IntPtr ToIntPtr(GCHandle value)
static GCHandle Alloc(object? value)
static GCHandle FromIntPtr(IntPtr value)
readonly AssemblyLoadContext _activated
readonly bool _initialized
ContextualReflectionScope(AssemblyLoadContext activating)
readonly AssemblyLoadContext _predecessor