X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2FSystem.Web%2FSystem.Web.Compilation%2FDirective.cs;h=aeec02d0686b6a11e78147d289e1c82a788c79df;hb=96b54e28f09a43a3563572024f151ccb7da384bd;hp=ff56e5e8a6a8594e46d0a6aa21554c55de25c967;hpb=948dbf8d4581ac17f5420cc4f7dc375e3c502576;p=mono.git diff --git a/mcs/class/System.Web/System.Web.Compilation/Directive.cs b/mcs/class/System.Web/System.Web.Compilation/Directive.cs index ff56e5e8a6a..aeec02d0686 100644 --- a/mcs/class/System.Web/System.Web.Compilation/Directive.cs +++ b/mcs/class/System.Web/System.Web.Compilation/Directive.cs @@ -31,6 +31,7 @@ using System; using System.Collections; using System.Globalization; +using System.Web.Util; namespace System.Web.Compilation { @@ -41,9 +42,7 @@ namespace System.Web.Compilation "ClassName", "ClientTarget", "CodePage", "CompilerOptions", "ContentType", "Culture", "Debug", "Description", -#if NET_2_0 - "EnableEventValidation", -#endif + "EnableEventValidation", "MaintainScrollPositionOnPostBack", "EnableSessionState", "EnableViewState", "EnableViewStateMac", "ErrorPage", "Explicit", "Inherits", "Language", "LCID", "ResponseEncoding", @@ -54,7 +53,7 @@ namespace System.Web.Compilation static string [] control_atts = { "AutoEventWireup", "ClassName", "CompilerOptions", "Debug", "Description", "EnableViewState", "Explicit", "Inherits", "Language", "Strict", "Src", - "WarningLevel", "CodeBehind", "TargetSchema" }; + "WarningLevel", "CodeBehind", "TargetSchema", "LinePragmas" }; static string [] import_atts = { "namespace" }; static string [] implements_atts = { "interface" }; @@ -70,118 +69,65 @@ namespace System.Web.Compilation static string [] application_atts = { "description", "inherits", "codebehind" }; -#if NET_2_0 static string [] mastertype_atts = { "virtualpath", "typename" }; -#endif + static string [] previouspagetype_atts = { "virtualpath", "typename" }; static Directive () { InitHash (); } - private static void InitHash () + static void InitHash () { -#if NET_2_0 StringComparer comparer = StringComparer.InvariantCultureIgnoreCase; directivesHash = new Hashtable (comparer); -#else - CaseInsensitiveHashCodeProvider provider = new CaseInsensitiveHashCodeProvider (CultureInfo.InvariantCulture); - CaseInsensitiveComparer comparer = new CaseInsensitiveComparer (CultureInfo.InvariantCulture); - - directivesHash = new Hashtable (provider, comparer); -#endif // Use Hashtable 'cause is O(1) in Contains (ArrayList is O(n)) -#if NET_2_0 Hashtable valid_attributes = new Hashtable (comparer); -#else - Hashtable valid_attributes = new Hashtable (provider, comparer); -#endif foreach (string att in page_atts) valid_attributes.Add (att, null); directivesHash.Add ("PAGE", valid_attributes); -#if NET_2_0 valid_attributes = new Hashtable (comparer); -#else - valid_attributes = new Hashtable (provider, comparer); -#endif foreach (string att in control_atts) valid_attributes.Add (att, null); directivesHash.Add ("CONTROL", valid_attributes); -#if NET_2_0 valid_attributes = new Hashtable (comparer); -#else - valid_attributes = new Hashtable (provider, comparer); -#endif foreach (string att in import_atts) valid_attributes.Add (att, null); directivesHash.Add ("IMPORT", valid_attributes); -#if NET_2_0 valid_attributes = new Hashtable (comparer); -#else - valid_attributes = new Hashtable (provider, comparer); -#endif foreach (string att in implements_atts) valid_attributes.Add (att, null); directivesHash.Add ("IMPLEMENTS", valid_attributes); -#if NET_2_0 valid_attributes = new Hashtable (comparer); -#else - valid_attributes = new Hashtable (provider, comparer); -#endif foreach (string att in register_atts) valid_attributes.Add (att, null); directivesHash.Add ("REGISTER", valid_attributes); -#if NET_2_0 valid_attributes = new Hashtable (comparer); -#else - valid_attributes = new Hashtable (provider, comparer); -#endif foreach (string att in assembly_atts) valid_attributes.Add (att, null); directivesHash.Add ("ASSEMBLY", valid_attributes); -#if NET_2_0 valid_attributes = new Hashtable (comparer); -#else - valid_attributes = new Hashtable (provider, comparer); -#endif foreach (string att in outputcache_atts) valid_attributes.Add (att, null); directivesHash.Add ("OUTPUTCACHE", valid_attributes); -#if NET_2_0 valid_attributes = new Hashtable (comparer); -#else - valid_attributes = new Hashtable (provider, comparer); -#endif foreach (string att in reference_atts) valid_attributes.Add (att, null); directivesHash.Add ("REFERENCE", valid_attributes); -#if NET_2_0 valid_attributes = new Hashtable (comparer); -#else - valid_attributes = new Hashtable (provider, comparer); -#endif foreach (string att in webservice_atts) valid_attributes.Add (att, null); directivesHash.Add ("WEBSERVICE", valid_attributes); -#if NET_2_0 valid_attributes = new Hashtable (comparer); -#else - valid_attributes = new Hashtable (provider, comparer); -#endif // same attributes as webservice foreach (string att in webservice_atts) valid_attributes.Add (att, null); directivesHash.Add ("WEBHANDLER", valid_attributes); -#if NET_2_0 valid_attributes = new Hashtable (comparer); -#else - valid_attributes = new Hashtable (provider, comparer); -#endif foreach (string att in application_atts) valid_attributes.Add (att, null); directivesHash.Add ("APPLICATION", valid_attributes); -#if NET_2_0 valid_attributes = new Hashtable (comparer); foreach (string att in mastertype_atts) valid_attributes.Add (att, null); directivesHash.Add ("MASTERTYPE", valid_attributes); @@ -189,10 +135,13 @@ namespace System.Web.Compilation valid_attributes = new Hashtable (comparer); foreach (string att in control_atts) valid_attributes.Add (att, null); directivesHash.Add ("MASTER", valid_attributes); -#endif + + valid_attributes = new Hashtable (comparer); + foreach (string att in previouspagetype_atts) valid_attributes.Add (att, null); + directivesHash.Add ("PREVIOUSPAGETYPE", valid_attributes); } - private Directive () { } + Directive () { } public static bool IsDirective (string id) {