varbRef=CreateCompilationWithMscorlib("public interface B { }",assemblyName:"B").EmitToImageReference();
vardRef=CreateCompilationWithMscorlib("public interface D { }",assemblyName:"D").EmitToImageReference();
varmRef=CreateCompilationWithMscorlib("public interface M : B { }",new[]{bRef},options:TestOptions.ReleaseModule.WithModuleName("M.netmodule")).EmitToImageReference();
varnRef=CreateCompilationWithMscorlib("public interface N : D { }",new[]{dRef},options:TestOptions.ReleaseModule.WithModuleName("N.netmodule")).EmitToImageReference();
varaRef=CreateCompilationWithMscorlib("public interface A : D { }",new[]{dRef},assemblyName:"A").EmitToImageReference();
varb1Ref=CreateCompilationWithMscorlib(@"[assembly: System.Reflection.AssemblyVersion(""1.0.0.0"")] public class B { }",options:s_signedDll,assemblyName:"B").EmitToImageReference();
varb2Ref=CreateCompilationWithMscorlib(@"[assembly: System.Reflection.AssemblyVersion(""2.0.0.0"")] public class B { }",options:s_signedDll,assemblyName:"B").EmitToImageReference();
varb3Ref=CreateCompilationWithMscorlib(@"[assembly: System.Reflection.AssemblyVersion(""3.0.0.0"")] public class B { }",options:s_signedDll,assemblyName:"B").EmitToImageReference();
varaRef=CreateCompilationWithMscorlib(@"[assembly: System.Reflection.AssemblyVersion(""1.0.0.0"")] public class A : B { }",new[]{b1Ref},options:s_signedDll,assemblyName:"A").EmitToImageReference();
varc=CreateCompilationWithMscorlib("public class C : A { }",new[]{aRef,b3Ref},
varb1Ref=CreateCompilationWithMscorlib(@"[assembly: System.Reflection.AssemblyVersion(""1.0.0.0"")] public class B { }",options:s_signedDll,assemblyName:"B").EmitToImageReference();
varb2Ref=CreateCompilationWithMscorlib(@"[assembly: System.Reflection.AssemblyVersion(""2.0.0.0"")] public class B { }",options:s_signedDll,assemblyName:"B").EmitToImageReference();
varb3Ref=CreateCompilationWithMscorlib(@"[assembly: System.Reflection.AssemblyVersion(""3.0.0.0"")] public class B { }",options:s_signedDll,assemblyName:"B").EmitToImageReference();
varaRef=CreateCompilationWithMscorlib(@"[assembly: System.Reflection.AssemblyVersion(""1.0.0.0"")] public class A : B { }",new[]{b1Ref},options:s_signedDll,assemblyName:"A").EmitToImageReference();
varc=CreateCompilationWithMscorlib("public class C : A { }",new[]{aRef,b3Ref},
varb1Ref=CreateCompilationWithMscorlib(@"[assembly: System.Reflection.AssemblyVersion(""1.0.0.0"")] public class B { }",options:s_signedDll,assemblyName:"B").EmitToImageReference();
varb2Ref=CreateCompilationWithMscorlib(@"[assembly: System.Reflection.AssemblyVersion(""2.0.0.0"")] public class B { }",options:s_signedDll,assemblyName:"B").EmitToImageReference();
varb3Ref=CreateCompilationWithMscorlib(@"[assembly: System.Reflection.AssemblyVersion(""3.0.0.0"")] public class B { }",options:s_signedDll,assemblyName:"B").EmitToImageReference();
varaRef=CreateCompilationWithMscorlib(@"[assembly: System.Reflection.AssemblyVersion(""1.0.0.0"")] public class A : B { }",new[]{b1Ref},options:s_signedDll,assemblyName:"A").EmitToImageReference();
varc=CreateCompilationWithMscorlib("public class C : A { }",new[]{aRef,b2Ref},
varb1Ref=CreateCompilationWithMscorlib(@"[assembly: System.Reflection.AssemblyVersion(""1.0.0.0"")] public class B { }",options:s_signedDll,assemblyName:"B").EmitToImageReference();
varb2Ref=CreateCompilationWithMscorlib(@"[assembly: System.Reflection.AssemblyVersion(""2.0.0.0"")] public class B { }",options:s_signedDll,assemblyName:"B").EmitToImageReference();
varaRef=CreateCompilationWithMscorlib(@"[assembly: System.Reflection.AssemblyVersion(""1.0.0.0"")] public class A : B { }",new[]{b2Ref},options:s_signedDll,assemblyName:"A").EmitToImageReference();
varc=CreateCompilationWithMscorlib("public class C : A { }",new[]{aRef,b1Ref},
varb1Ref=CreateCompilationWithMscorlib(@"[assembly: System.Reflection.AssemblyVersion(""1.0.0.0"")] public class B { }",options:s_signedDll,assemblyName:"B").EmitToImageReference();
varb2Ref=CreateCompilationWithMscorlib(@"[assembly: System.Reflection.AssemblyVersion(""2.0.0.0"")] public class B { }",options:s_signedDll,assemblyName:"B").EmitToImageReference();
varb3Ref=CreateCompilationWithMscorlib(@"[assembly: System.Reflection.AssemblyVersion(""3.0.0.0"")] public class B { }",options:s_signedDll,assemblyName:"B").EmitToImageReference();
varaRef=CreateCompilationWithMscorlib(@"[assembly: System.Reflection.AssemblyVersion(""1.0.0.0"")] public class A : B { }",new[]{b3Ref},options:s_signedDll,assemblyName:"A").EmitToImageReference();
varc=CreateCompilationWithMscorlib("public class C : A { }",new[]{aRef,b2Ref},
varb1Ref=CreateCompilationWithMscorlib(@"[assembly: System.Reflection.AssemblyVersion(""1.0.0.0"")] public class B { }",options:s_signedDll,assemblyName:"B").EmitToImageReference();
varb2Ref=CreateCompilationWithMscorlib(@"[assembly: System.Reflection.AssemblyVersion(""2.0.0.0"")] public class B { }",options:s_signedDll,assemblyName:"B").EmitToImageReference();
varb3Ref=CreateCompilationWithMscorlib(@"[assembly: System.Reflection.AssemblyVersion(""3.0.0.0"")] public class B { }",options:s_signedDll,assemblyName:"B").EmitToImageReference();
varaRef=CreateCompilationWithMscorlib(@"[assembly: System.Reflection.AssemblyVersion(""1.0.0.0"")] public class A : B { }",new[]{b3Ref},options:s_signedDll,assemblyName:"A").EmitToImageReference();
varc=CreateCompilationWithMscorlib("public class C : A { }",new[]{aRef,b1Ref},
// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
usingSystem;
usingSystem.Collections.Immutable;
namespaceMicrosoft.CodeAnalysis
...
...
@@ -12,5 +13,18 @@ public abstract class MetadataReferenceResolver
/// True to instruct the compiler to invoke <see cref="ResolveMissingAssembly(AssemblyIdentity)"/> for each assembly reference that
/// doesn't match any of the assemblies explicitly referenced by the <see cref="Compilation"/> (via <see cref="Compilation.ExternalReferences"/>, or #r directives.
/// </summary>
publicvirtualboolResolveMissingAssemblies=>false;
/// <summary>
/// Resolves a missing assembly reference.
/// </summary>
/// <param name="identity">Identity of the assembly reference.</param>
/// <returns>Resolved reference or null if the identity can't be resolved.</returns>
/// <param name="definitions">Array of definition identities to match against.</param>
/// <param name="definitionStartIndex">An index of the first definition to consider, <paramref name="definitions"/> preceding this index are ignored.</param>
/// <param name="reference">Reference identity to resolve.</param>