Ejemplo n.º 1
0
        public SimpleCompilation(ISolutionSnapshot solutionSnapshot, IUnresolvedAssembly mainAssembly, IEnumerable <IAssemblyReference> assemblyReferences)
        {
            if (solutionSnapshot == null)
            {
                throw new ArgumentNullException("solutionSnapshot");
            }
            if (mainAssembly == null)
            {
                throw new ArgumentNullException("mainAssembly");
            }
            if (assemblyReferences == null)
            {
                throw new ArgumentNullException("assemblyReferences");
            }
            this.solutionSnapshot = solutionSnapshot;
            this.context          = new SimpleTypeResolveContext(this);
            this.mainAssembly     = mainAssembly.Resolve(context);
            List <IAssembly> referencedAssemblies = new List <IAssembly>();

            foreach (var asmRef in assemblyReferences)
            {
                IAssembly asm = asmRef.Resolve(context);
                if (asm != null)
                {
                    referencedAssemblies.Add(asm);
                }
            }
            this.referencedAssemblies = referencedAssemblies.AsReadOnly();
            this.knownTypeCache       = new KnownTypeCache(this);
        }
        public BVE5Compilation(ISolutionSnapshot solutionSnapshot, IUnresolvedAssembly mainAssembly,
                               IEnumerable<IAssemblyReference> assemblyReferences)
        {
            if(solutionSnapshot == null)
                throw new ArgumentNullException("solutionSnapshot");

            if(mainAssembly == null)
                throw new ArgumentNullException("mainAssembly");

            if(assemblyReferences == null)
                throw new ArgumentNullException("assemblyReferences");

            solution_snapshot = solutionSnapshot;
            context = new SimpleTypeResolveContext(this);
            main_assembly = mainAssembly.Resolve(context);
            var assemblies = new List<IAssembly>{main_assembly};
            var referenced_assemblies = new List<IAssembly>();
            foreach(var asm_ref in assemblyReferences){
                IAssembly asm = asm_ref.Resolve(context);
                if(asm != null && !assemblies.Contains(asm))
                    assemblies.Add(asm);

                if(asm != null && !referenced_assemblies.Contains(asm))
                    referenced_assemblies.Add(asm);
            }

            this.assemblies = assemblies.AsReadOnly();
            this.referenced_assemblies = referenced_assemblies.AsReadOnly();
            this.type_cache = new PrimitiveTypeCache(this);
        }
Ejemplo n.º 3
0
		public SimpleCompilation(ISolutionSnapshot solutionSnapshot, IUnresolvedAssembly mainAssembly, IEnumerable<IAssemblyReference> assemblyReferences)
		{
			if (solutionSnapshot == null)
				throw new ArgumentNullException("solutionSnapshot");
			if (mainAssembly == null)
				throw new ArgumentNullException("mainAssembly");
			if (assemblyReferences == null)
				throw new ArgumentNullException("assemblyReferences");
			this.solutionSnapshot = solutionSnapshot;
			this.context = new SimpleTypeResolveContext(this);
			this.mainAssembly = mainAssembly.Resolve(context);
			List<IAssembly> assemblies = new List<IAssembly>();
			assemblies.Add(this.mainAssembly);
			List<IAssembly> referencedAssemblies = new List<IAssembly>();
			foreach (var asmRef in assemblyReferences) {
				IAssembly asm = asmRef.Resolve(context);
				if (asm != null && !assemblies.Contains(asm))
					assemblies.Add(asm);
				if (asm != null && !referencedAssemblies.Contains(asm))
					referencedAssemblies.Add(asm);
			}
			this.assemblies = assemblies.AsReadOnly();
			this.referencedAssemblies = referencedAssemblies.AsReadOnly();
			this.knownTypeCache = new KnownTypeCache(this);
		}
Ejemplo n.º 4
0
		public SimpleCompilation(ISolutionSnapshot solutionSnapshot, IUnresolvedAssembly mainAssembly, IEnumerable<IAssemblyReference> assemblyReferences)
		{
			if (solutionSnapshot == null)
				throw new ArgumentNullException("solutionSnapshot");
			if (mainAssembly == null)
				throw new ArgumentNullException("mainAssembly");
			if (assemblyReferences == null)
				throw new ArgumentNullException("assemblyReferences");
			this.solutionSnapshot = solutionSnapshot;
			this.context = new SimpleTypeResolveContext(this);
			this.mainAssembly = mainAssembly.Resolve(context);
			List<IAssembly> assemblies = new List<IAssembly>();
			assemblies.Add(this.mainAssembly);
			List<IAssembly> referencedAssemblies = new List<IAssembly>();
			foreach (var asmRef in assemblyReferences) {
				IAssembly asm;
				try {
					asm = asmRef.Resolve(context);
				} catch (InvalidOperationException) {
					throw new InvalidOperationException("Tried to initialize compilation with an invalid assembly reference. (Forgot to load the assembly reference ? - see CecilLoader)");
				}
				if (asm != null && !assemblies.Contains(asm))
					assemblies.Add(asm);
				if (asm != null && !referencedAssemblies.Contains(asm))
					referencedAssemblies.Add(asm);
			}
			this.assemblies = assemblies.AsReadOnly();
			this.referencedAssemblies = referencedAssemblies.AsReadOnly();
			this.knownTypeCache = new KnownTypeCache(this);
		}
Ejemplo n.º 5
0
        public SimpleCompilation(ISolutionSnapshot solutionSnapshot, IUnresolvedAssembly mainAssembly, IEnumerable <IAssemblyReference> assemblyReferences)
        {
            if (solutionSnapshot == null)
            {
                throw new ArgumentNullException("solutionSnapshot");
            }
            if (mainAssembly == null)
            {
                throw new ArgumentNullException("mainAssembly");
            }
            if (assemblyReferences == null)
            {
                throw new ArgumentNullException("assemblyReferences");
            }
            this.solutionSnapshot = solutionSnapshot;
            this.context          = new SimpleTypeResolveContext(this);
            this.mainAssembly     = mainAssembly.Resolve(context);
            List <IAssembly> assemblies = new List <IAssembly>();

            assemblies.Add(this.mainAssembly);
            List <IAssembly> referencedAssemblies = new List <IAssembly>();

            foreach (var asmRef in assemblyReferences)
            {
                IAssembly asm;
                try
                {
                    asm = asmRef.Resolve(context);
                }
                catch (InvalidOperationException)
                {
                    throw new InvalidOperationException("Tried to initialize compilation with an invalid assembly reference. (Forgot to load the assembly reference ? - see CecilLoader)");
                }
                if (asm != null && !assemblies.Contains(asm))
                {
                    assemblies.Add(asm);
                }
                if (asm != null && !referencedAssemblies.Contains(asm))
                {
                    referencedAssemblies.Add(asm);
                }
            }
            this.assemblies           = assemblies.AsReadOnly();
            this.referencedAssemblies = referencedAssemblies.AsReadOnly();
            this.knownTypeCache       = new KnownTypeCache(this);
        }