Beispiel #1
0
        public BoundTypeResolver(string moduleName, string[] referencePaths)
        {
            Types       = new Dictionary <TypeSymbol, TypeReference>();
            diagnostics = new DiagnosticBag();

            var assembylInfo = new AssemblyNameDefinition(moduleName, new Version(1, 0));

            MainAssembly = AssemblyDefinition.CreateAssembly(assembylInfo, moduleName, ModuleKind.Console);

            var refBuilder = ImmutableArray.CreateBuilder <AssemblyDefinition>();

            foreach (var reference in referencePaths)
            {
                try
                {
                    var assembly = AssemblyDefinition.ReadAssembly(reference);
                    refBuilder.Add(assembly);
                }
                catch (BadImageFormatException)
                {
                    diagnostics.ReportError(ErrorMessage.InvalidReference, TextLocation.Undefined, reference);
                }
            }
            References = refBuilder.ToImmutable();
        }