Author: mhabersack
Date: 2008-02-07 17:28:25 -0500 (Thu, 07 Feb 2008)
New Revision: 95199

Modified:
   branches/mono-1-9/mcs/class/System.Web/System.Web.UI/ChangeLog
   branches/mono-1-9/mcs/class/System.Web/System.Web.UI/TemplateParser.cs
Log:
Backport of r95198


Modified: branches/mono-1-9/mcs/class/System.Web/System.Web.UI/ChangeLog
===================================================================
--- branches/mono-1-9/mcs/class/System.Web/System.Web.UI/ChangeLog      
2008-02-07 22:27:11 UTC (rev 95198)
+++ branches/mono-1-9/mcs/class/System.Web/System.Web.UI/ChangeLog      
2008-02-07 22:28:25 UTC (rev 95199)
@@ -1,3 +1,8 @@
+2008-02-08  Marek Habersack  <[EMAIL PROTECTED]>
+
+       * TemplateParser.cs: make sure that the Src attribute is treated
+       correctly in the 2.0 profile. Fixes bug #319016
+
 2008-02-07  Marek Habersack  <[EMAIL PROTECTED]>
 
        * PageHandlerFactory.cs: call PageParser.GetCompiledPageInstance

Modified: branches/mono-1-9/mcs/class/System.Web/System.Web.UI/TemplateParser.cs
===================================================================
--- branches/mono-1-9/mcs/class/System.Web/System.Web.UI/TemplateParser.cs      
2008-02-07 22:27:11 UTC (rev 95198)
+++ branches/mono-1-9/mcs/class/System.Web/System.Web.UI/TemplateParser.cs      
2008-02-07 22:28:25 UTC (rev 95199)
@@ -587,6 +587,8 @@
                        string legacySrc = GetString (atts, "Src", null);
                        if (legacySrc != null) {
                                legacySrc = UrlUtils.Combine (BaseVirtualDir, 
legacySrc);
+                               GetAssemblyFromSource (legacySrc);
+
                                if (src == null) {
                                        src = legacySrc;
                                        legacySrc = MapPath (legacySrc, false);
@@ -596,9 +598,8 @@
                                        
                                        srcIsLegacy = true;
                                } else 
-                                       legacySrc = MapPath (legacySrc, false);
-                               
-                               GetAssemblyFromSource (legacySrc);
+                                       legacySrc = MapPath (legacySrc, false); 
                        
+
                                AddDependency (legacySrc);
                        }
                        
@@ -793,17 +794,33 @@
                        this.language = language;
                        implicitLanguage = false;
                }
-               
+
                Assembly GetAssemblyFromSource (string vpath)
-               {
+               {                       
                        vpath = UrlUtils.Combine (BaseVirtualDir, vpath);
                        string realPath = MapPath (vpath, false);
                        if (!File.Exists (realPath))
                                ThrowParseException ("File " + vpath + " not 
found");
 
                        AddSourceDependency (vpath);
+                       
+                       CompilerResults result;
 
-                       CompilerResults result = CachingCompiler.Compile 
(language, realPath, realPath, assemblies, Debug);
+#if NET_2_0
+                       string tmp;
+                       CompilerParameters parameters;
+                       CodeDomProvider provider = BaseCompiler.CreateProvider 
(HttpContext.Current, language, out parameters, out tmp);
+                       if (provider == null)
+                               throw new HttpException ("Cannot find provider 
for language '" + language + "'.");
+                       
+                       AssemblyBuilder abuilder = new AssemblyBuilder 
(provider);
+                       abuilder.CompilerOptions = parameters;
+                       abuilder.AddAssemblyReference 
(BuildManager.GetReferencedAssemblies () as List <Assembly>);
+                       abuilder.AddCodeFile (realPath);
+                       result = abuilder.BuildAssembly (vpath);
+#else
+                       result = CachingCompiler.Compile (language, realPath, 
realPath, assemblies, Debug);
+#endif
                        if (result.NativeCompilerReturnValue != 0) {
                                StreamReader reader = new StreamReader 
(realPath);
                                throw new CompilationException (realPath, 
result.Errors, reader.ReadToEnd ());
@@ -840,7 +857,12 @@
                }
 
                internal string CodeBehindSource {
-                       get { return src; }
+                       get {
+                               if (srcIsLegacy)
+                                       return null;
+                               
+                               return src;
+                       }
                }
                        
                internal string PartialClassName {

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to