Mono.CSharp.ModuleContainer.CreateRootNamespace C# (CSharp) Method

CreateRootNamespace() public method

public CreateRootNamespace ( string alias ) : RootNamespace
alias string
return RootNamespace
		public RootNamespace CreateRootNamespace (string alias)
		{
			if (alias == global_ns.Alias) {
				RootNamespace.Error_GlobalNamespaceRedefined (Report, Location.Null);
				return global_ns;
			}

			RootNamespace rn;
			if (!alias_ns.TryGetValue (alias, out rn)) {
				rn = new RootNamespace (alias);
				alias_ns.Add (alias, rn);
			}

			return rn;
		}

Usage Example

示例#1
0
文件: assembly.cs 项目: jj-jabb/mono
        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);
        }
All Usage Examples Of Mono.CSharp.ModuleContainer::CreateRootNamespace