CreateRootNamespace() public méthode

public CreateRootNamespace ( string alias ) : RootNamespace
alias string
Résultat RootNamespace
Exemple #1
0
        protected void LoadReferencesCore(ModuleContainer module, out T corlib_assembly, out List <Tuple <RootNamespace, T> > loaded)
        {
            compiler.TimeReporter.Start(TimeReporter.TimerType.ReferencesLoading);

            loaded = new List <Tuple <RootNamespace, T> > ();

            //
            // Load mscorlib.dll as the first
            //
            if (module.Compiler.Settings.StdLib)
            {
                corlib_assembly = LoadAssemblyFile("mscorlib.dll", true);
            }
            else
            {
                corlib_assembly = default(T);
            }

            T a;

            foreach (string r in module.Compiler.Settings.AssemblyReferences)
            {
                a = LoadAssemblyFile(r, false);
                if (a == null || EqualityComparer <T> .Default.Equals(a, corlib_assembly))
                {
                    continue;
                }

                var key = Tuple.Create(module.GlobalRootNamespace, a);
                if (loaded.Contains(key))
                {
                    continue;
                }

                // A corlib assembly is the first assembly which contains System.Object
                if (corlib_assembly == null && HasObjectType(a))
                {
                    corlib_assembly = a;
                    continue;
                }

                loaded.Add(key);
            }

            foreach (var entry in module.Compiler.Settings.AssemblyReferencesAliases)
            {
                a = LoadAssemblyFile(entry.Item2, false);
                if (a == null)
                {
                    continue;
                }

                var key = Tuple.Create(module.CreateRootNamespace(entry.Item1), a);
                if (loaded.Contains(key))
                {
                    continue;
                }

                loaded.Add(key);
            }

            if (compiler.Settings.LoadDefaultReferences)
            {
                foreach (string r in GetDefaultReferences())
                {
                    a = LoadAssemblyFile(r, true);
                    if (a == null)
                    {
                        continue;
                    }

                    var key = Tuple.Create(module.GlobalRootNamespace, a);
                    if (loaded.Contains(key))
                    {
                        continue;
                    }

                    loaded.Add(key);
                }
            }

            compiler.TimeReporter.Stop(TimeReporter.TimerType.ReferencesLoading);
        }
Exemple #2
0
		/// <summary>
		///   Loads all assemblies referenced on the command line
		/// </summary>
		public void LoadReferences (ModuleContainer module)
		{
			Assembly a;
			var loaded = new List<Tuple<RootNamespace, Assembly>> ();

			//
			// Load Core Library for default compilation
			//
			if (RootContext.StdLib) {
				a = LoadAssemblyFile ("mscorlib", false);
				if (a != null)
					loaded.Add (Tuple.Create (module.GlobalRootNamespace, a));
			}

			foreach (string r in default_references) {
				a = LoadAssemblyFile (r, true);
				if (a != null)
					loaded.Add (Tuple.Create (module.GlobalRootNamespace, a));
			}

			foreach (string r in RootContext.AssemblyReferences) {
				a = LoadAssemblyFile (r, false);
				if (a == null)
					continue;

				var key = Tuple.Create (module.GlobalRootNamespace, a);
				if (loaded.Contains (key))
					continue;

				loaded.Add (key);
			}

			foreach (var entry in RootContext.AssemblyReferencesAliases) {
				a = LoadAssemblyFile (entry.Item2, false);
				if (a == null)
					continue;

				var key = Tuple.Create (module.CreateRootNamespace (entry.Item1), a);
				if (loaded.Contains (key))
					continue;

				loaded.Add (key);
			}

			foreach (var entry in loaded) {
				importer.ImportAssembly (entry.Item2, entry.Item1);
			}
		}
Exemple #3
0
        protected void LoadReferencesCore(ModuleContainer module, out T corlib_assembly, out List <Tuple <RootNamespace, T> > loaded)
        {
            compiler.TimeReporter.Start(TimeReporter.TimerType.ReferencesLoading);

            loaded = new List <Tuple <RootNamespace, T> > ();

            //
            // Load mscorlib.dll as the first
            //
            if (module.Compiler.Settings.StdLib)
            {
                corlib_assembly = LoadAssemblyFile("mscorlib.dll", true);
            }
            else
            {
                corlib_assembly = default(T);
            }

            T a;

            foreach (string r in module.Compiler.Settings.AssemblyReferences)
            {
                a = LoadAssemblyFile(r, false);
                if (a == null || EqualityComparer <T> .Default.Equals(a, corlib_assembly))
                {
                    continue;
                }

                var key = Tuple.Create(module.GlobalRootNamespace, a);
                if (loaded.Contains(key))
                {
                    continue;
                }

                loaded.Add(key);
            }

            if (corlib_assembly == null)
            {
                //
                // Requires second pass because HasObjectType can trigger assembly load event
                //
                for (int i = 0; i < loaded.Count; ++i)
                {
                    var assembly = loaded [i];

                    //
                    // corlib assembly is the first referenced assembly which contains System.Object
                    //
                    if (HasObjectType(assembly.Item2))
                    {
                        corlib_assembly = assembly.Item2;
                        loaded.RemoveAt(i);
                        break;
                    }
                }
            }

            foreach (var entry in module.Compiler.Settings.AssemblyReferencesAliases)
            {
                a = LoadAssemblyFile(entry.Item2, false);
                if (a == null)
                {
                    continue;
                }

                var key = Tuple.Create(module.CreateRootNamespace(entry.Item1), a);
                if (loaded.Contains(key))
                {
                    continue;
                }

                loaded.Add(key);
            }

            if (compiler.Settings.LoadDefaultReferences)
            {
                foreach (string r in GetDefaultReferences())
                {
                    a = LoadAssemblyFile(r, true);
                    if (a == null)
                    {
                        continue;
                    }

                    var key = Tuple.Create(module.GlobalRootNamespace, a);
                    if (loaded.Contains(key))
                    {
                        continue;
                    }

                    loaded.Add(key);
                }
            }

            compiler.TimeReporter.Stop(TimeReporter.TimerType.ReferencesLoading);
        }
Exemple #4
0
        protected void LoadReferencesCore(ModuleContainer module, out T corlib_assembly, out List <Tuple <RootNamespace, T> > loaded)
        {
            loaded = new List <Tuple <RootNamespace, T> > ();

            //
            // Load mscorlib.dll as the first
            //
            if (RootContext.StdLib)
            {
                corlib_assembly = LoadAssemblyDefault("mscorlib.dll");
            }
            else
            {
                corlib_assembly = default(T);
            }

            T a;

            foreach (string r in default_references)
            {
                a = LoadAssemblyDefault(r);
                if (a != null)
                {
                    loaded.Add(Tuple.Create(module.GlobalRootNamespace, a));
                }
            }

            foreach (string r in RootContext.AssemblyReferences)
            {
                a = LoadAssemblyFile(r);
                if (a == null || EqualityComparer <T> .Default.Equals(a, corlib_assembly))
                {
                    continue;
                }

                var key = Tuple.Create(module.GlobalRootNamespace, a);
                if (loaded.Contains(key))
                {
                    continue;
                }

                // A corlib assembly is the first assembly which contains System.Object
                if (corlib_assembly == null && HasObjectType(a))
                {
                    corlib_assembly = a;
                    continue;
                }

                loaded.Add(key);
            }

            foreach (var entry in RootContext.AssemblyReferencesAliases)
            {
                a = LoadAssemblyFile(entry.Item2);
                if (a == null)
                {
                    continue;
                }

                var key = Tuple.Create(module.CreateRootNamespace(entry.Item1), a);
                if (loaded.Contains(key))
                {
                    continue;
                }

                loaded.Add(key);
            }
        }