var asm = loadContext.LoadFromAssemblyName(asmName);
Assert.NotNull(asm);
+ Assert.Same(loadContext, AssemblyLoadContext.GetLoadContext(asm));
Assert.Contains(asm.DefinedTypes, t => t.Name == "TestClass");
}
var asm = loadContext.LoadFromAssemblyName(asmName);
Assert.NotNull(asm);
+ Assert.Same(loadContext, AssemblyLoadContext.GetLoadContext(asm));
Assert.Contains(asm.DefinedTypes, t => t.Name == "TestClass");
}
}
[Fact]
+ public static void LoadFromAssemblyName_FallbackToDefaultContext()
+ {
+ var asmName = typeof(System.Linq.Enumerable).Assembly.GetName();
+ asmName.CodeBase = null;
+ var loadContext = new AssemblyLoadContext("FallbackToDefaultContextTest");
+
+ // This should not have any special handlers, so it should just find the version in the default context
+ var asm = loadContext.LoadFromAssemblyName(asmName);
+ Assert.NotNull(asm);
+ var loadedContext = AssemblyLoadContext.GetLoadContext(asm);
+ Assert.NotNull(loadedContext);
+ Assert.Same(AssemblyLoadContext.Default, loadedContext);
+ Assert.NotEqual(loadContext, loadedContext);
+ Assert.Same(typeof(System.Linq.Enumerable).Assembly, asm);
+ }
+
+ [Fact]
public static void GetLoadContextTest_ValidUserAssembly()
{
var asmName = new AssemblyName(TestAssembly);
var context = AssemblyLoadContext.GetLoadContext(asm);
Assert.NotNull(context);
+ Assert.Same(AssemblyLoadContext.Default, context);
}
[Fact]
Assert.Equal(typeof(ISharedInterface), sharedInterface);
var instance = Activator.CreateInstance(dynamicType);
- Assert.True(instance is ISharedInterface);
+ Assert.IsAssignableFrom<ISharedInterface>(instance);
Assert.NotNull(((ISharedInterface)instance).TestString); // cast should not fail
}
AssemblyName parentAssemblyName = new AssemblyName(assemblyName);
Assembly parentAssembly = assemblyLoadContext.LoadFromAssemblyName(parentAssemblyName);
- Assert.Equal(AssemblyLoadContext.GetLoadContext(parentAssembly), AssemblyLoadContext.GetLoadContext(satelliteAssembly));
+ Assert.Same(AssemblyLoadContext.GetLoadContext(parentAssembly), AssemblyLoadContext.GetLoadContext(satelliteAssembly));
+
+ Assert.Equal(culture, satelliteAssembly.GetName().CultureName);
}
[ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotInvariantGlobalization))]
Assert.NotNull(satelliteAssembly);
- AssemblyName parentAssemblyName = new AssemblyName(assemblyName);
- Assembly parentAssembly = assemblyLoadContext.LoadFromAssemblyName(parentAssemblyName);
+ Assert.Same(assemblyLoadContext, AssemblyLoadContext.GetLoadContext(satelliteAssembly));
Assert.Equal(culture, satelliteAssembly.GetName().CultureName);
}