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