From: Gert D. <dri...@us...> - 2003-07-26 09:07:55
|
Update of /cvsroot/nant/nant/src/NAnt.Win32/Tasks In directory sc8-pr-cvs1:/tmp/cvs-serv29716 Modified Files: ScriptTask.cs Log Message: use NamespaceImport class to specify namespaces to import Index: ScriptTask.cs =================================================================== RCS file: /cvsroot/nant/nant/src/NAnt.Win32/Tasks/ScriptTask.cs,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** ScriptTask.cs 29 Jun 2003 07:27:04 -0000 1.8 --- ScriptTask.cs 25 Jul 2003 17:06:41 -0000 1.9 *************** *** 88,92 **** private string _rootClassName; private string _code; ! private ArrayList _imports = new ArrayList(); #endregion Private Instance Fields --- 88,92 ---- private string _rootClassName; private string _code; ! private NamespaceImportCollection _imports = new NamespaceImportCollection(); #endregion Private Instance Fields *************** *** 134,137 **** --- 134,145 ---- } + /// <summary> + /// The namespaces to import. + /// </summary> + [BuildElementCollection("imports")] + public NamespaceImportCollection Imports { + get { return _imports; } + } + #endregion Public Instance Properties *************** *** 176,187 **** _code = codeList.Item(0).InnerText; ! _rootClassName = "nant" + System.Guid.NewGuid().ToString().Replace("-", ""); ! ! _imports.Clear(); ! //TODO: Replace XPath Expressions. (Or use namespace/prefix'd element names) ! XmlNodeList importsList = taskNode.SelectNodes("nant:imports/nant:import", Project.NamespaceManager); ! foreach (XmlNode import in importsList) { ! _imports.Add(import.Attributes["name"].InnerText); ! } } --- 184,188 ---- _code = codeList.Item(0).InnerText; ! _rootClassName = "nant" + Guid.NewGuid().ToString("N", CultureInfo.InvariantCulture); } *************** *** 208,212 **** options.ReferencedAssemblies.Add(asm.Location); } ! } catch ( NotSupportedException ) { // Ignore - this error is sometimes thrown by asm.Location for certain dynamic assemblies } --- 209,213 ---- options.ReferencedAssemblies.Add(asm.Location); } ! } catch (NotSupportedException) { // Ignore - this error is sometimes thrown by asm.Location for certain dynamic assemblies } *************** *** 223,227 **** } ! string code = compilerInfo.GenerateCode(_rootClassName, _code, _imports); CompilerResults results = compiler.CompileAssemblyFromSource(options, code); --- 224,236 ---- } ! StringCollection imports = new StringCollection(); ! ! foreach (NamespaceImport import in Imports) { ! if (import.IfDefined && !import.UnlessDefined) { ! imports.Add(import.Namespace); ! } ! } ! ! string code = compilerInfo.GenerateCode(_rootClassName, _code, imports); CompilerResults results = compiler.CompileAssemblyFromSource(options, code); *************** *** 317,321 **** CodePrologue = ""; CodePrologue += GenerateImportCode(ScriptTask._defaultNamespaces); ! } private string GenerateImportCode(IList namespaces) { --- 326,330 ---- CodePrologue = ""; CodePrologue += GenerateImportCode(ScriptTask._defaultNamespaces); ! } private string GenerateImportCode(IList namespaces) { *************** *** 330,334 **** } ! public string GenerateCode(string typeName, string codeBody, IList imports) { CodeTypeDeclaration typeDecl = new CodeTypeDeclaration(typeName); typeDecl.IsClass = true; --- 339,343 ---- } ! public string GenerateCode(string typeName, string codeBody, StringCollection imports) { CodeTypeDeclaration typeDecl = new CodeTypeDeclaration(typeName); typeDecl.IsClass = true; |