System.Web.Compilation.CachingCompiler.GetExtraAssemblies C# (CSharp) Method

GetExtraAssemblies() static private method

static private GetExtraAssemblies ( CompilerParameters options ) : void
options System.CodeDom.Compiler.CompilerParameters
return void
		static void GetExtraAssemblies (CompilerParameters options)
		{
			StringCollection refAsm = options.ReferencedAssemblies;
			string asmLocation;
			string asmName;
			ArrayList al = WebConfigurationManager.ExtraAssemblies;
			
			if (al != null && al.Count > 0) {
				foreach (object o in al) {
					asmName = o as string;
					if (asmName != null && !refAsm.Contains (asmName))
						refAsm.Add (asmName);
				}
			}

			Assembly asm;
			IList list = BuildManager.CodeAssemblies;
			if (list != null && list.Count > 0) {
				foreach (object o in list) {
					asm = o as Assembly;
					if (asm == null)
						continue;
					asmName = asm.Location;
					if (asmName != null && !refAsm.Contains (asmName))
						refAsm.Add (asmName);
				}
			}
			
			list = BuildManager.TopLevelAssemblies;
			if (list != null && list.Count > 0) {
				foreach (object o in list) {
					asm = o as Assembly;
					if (o == null)
						continue;
					asmName = asm.Location;
					if (!refAsm.Contains (asmName))
						refAsm.Add (asmName);
				}
			}

			CompilationSection cfg = WebConfigurationManager.GetWebApplicationSection ("system.web/compilation") as CompilationSection;
			AssemblyCollection asmcoll = cfg != null ? cfg.Assemblies : null;

			if (asmcoll == null)
				return;

			foreach (AssemblyInfo ai in asmcoll) {
				asmLocation = GetAssemblyLocationFromName (ai.Assembly);
				
				if (asmLocation == null || refAsm.Contains (asmLocation))
					continue;
				refAsm.Add (asmLocation);
			}
		}