public static void ResolverMultipleCalls() { var resolver = new ResolverReturnsSomething(); using (MetadataLoadContext lc = new MetadataLoadContext(resolver)) { Assembly derived = lc.LoadFromByteArray(TestData.s_DerivedClassWithVariationsOnFooImage); int expectedCount = 2; // Includes the initial probe for mscorelib foreach (string typeName in new string[] { "Derived1", "Derived3", "Derived4", "Derived5", "Derived6" }) { Type t = derived.GetType(typeName, throwOnError: true); Type bt = t.BaseType; Assert.Equal(bt.Assembly, resolver.Assembly); Assert.Equal(expectedCount++, resolver.CallCount); } } }
public static void ResolverReturnsSomething() { var resolver = new ResolverReturnsSomething(); using (MetadataLoadContext lc = new MetadataLoadContext(resolver)) { Assert.Same(lc, resolver.Context); Assert.Equal(1, resolver.CallCount); Assembly derived = lc.LoadFromByteArray(TestData.s_DerivedClassWithVariationsOnFooImage); Type t = derived.GetType("Derived1", throwOnError: true); Type bt = t.BaseType; Assert.Same(lc, resolver.Context); Assert.Equal("Foo", resolver.AssemblyName.Name); Assert.Equal(2, resolver.CallCount); Assembly a = bt.Assembly; Assert.Equal(a, resolver.Assembly); } }