internal override void ProcessDirective(string directiveName, IDictionary directive) { if (StringUtil.EqualsIgnoreCase(directiveName, "outputcache")) { if (!this.FInDesigner) { if (this._outputCacheSettings == null) { this._outputCacheSettings = new System.Web.UI.OutputCacheParameters(); } if (this._outputCacheDirective != null) { throw new HttpException(System.Web.SR.GetString("Only_one_directive_allowed", new object[] { directiveName })); } this.ProcessOutputCacheDirective(directiveName, directive); this._outputCacheDirective = directive; } } else if (StringUtil.EqualsIgnoreCase(directiveName, "reference")) { if (!this.FInDesigner) { VirtualPath andRemoveVirtualPathAttribute = Util.GetAndRemoveVirtualPathAttribute(directive, "virtualpath"); bool flag = false; bool flag2 = false; VirtualPath path2 = Util.GetAndRemoveVirtualPathAttribute(directive, "page"); if (path2 != null) { if (andRemoveVirtualPathAttribute != null) { base.ProcessError(System.Web.SR.GetString("Invalid_reference_directive")); return; } andRemoveVirtualPathAttribute = path2; flag = true; } path2 = Util.GetAndRemoveVirtualPathAttribute(directive, "control"); if (path2 != null) { if (andRemoveVirtualPathAttribute != null) { base.ProcessError(System.Web.SR.GetString("Invalid_reference_directive")); return; } andRemoveVirtualPathAttribute = path2; flag2 = true; } if (andRemoveVirtualPathAttribute == null) { base.ProcessError(System.Web.SR.GetString("Invalid_reference_directive")); } else { Type referencedType = base.GetReferencedType(andRemoveVirtualPathAttribute); if (referencedType == null) { base.ProcessError(System.Web.SR.GetString("Invalid_reference_directive_attrib", new object[] { andRemoveVirtualPathAttribute })); } if (flag && !typeof(Page).IsAssignableFrom(referencedType)) { base.ProcessError(System.Web.SR.GetString("Invalid_reference_directive_attrib", new object[] { andRemoveVirtualPathAttribute })); } if (flag2 && !typeof(UserControl).IsAssignableFrom(referencedType)) { base.ProcessError(System.Web.SR.GetString("Invalid_reference_directive_attrib", new object[] { andRemoveVirtualPathAttribute })); } Util.CheckUnknownDirectiveAttributes(directiveName, directive); } } } else { base.ProcessDirective(directiveName, directive); } }
internal override void ProcessDirective(string directiveName, IDictionary directive) { if (StringUtil.EqualsIgnoreCase(directiveName, "outputcache")) { if (!this.FInDesigner) { if (this._outputCacheSettings == null) { this._outputCacheSettings = new System.Web.UI.OutputCacheParameters(); } if (this._outputCacheDirective != null) { throw new HttpException(System.Web.SR.GetString("Only_one_directive_allowed", new object[] { directiveName })); } this.ProcessOutputCacheDirective(directiveName, directive); this._outputCacheDirective = directive; } } else if (StringUtil.EqualsIgnoreCase(directiveName, "reference")) { if (!this.FInDesigner) { VirtualPath andRemoveVirtualPathAttribute = Util.GetAndRemoveVirtualPathAttribute(directive, "virtualpath"); bool flag = false; bool flag2 = false; VirtualPath path2 = Util.GetAndRemoveVirtualPathAttribute(directive, "page"); if (path2 != null) { if (andRemoveVirtualPathAttribute != null) { base.ProcessError(System.Web.SR.GetString("Invalid_reference_directive")); return; } andRemoveVirtualPathAttribute = path2; flag = true; } path2 = Util.GetAndRemoveVirtualPathAttribute(directive, "control"); if (path2 != null) { if (andRemoveVirtualPathAttribute != null) { base.ProcessError(System.Web.SR.GetString("Invalid_reference_directive")); return; } andRemoveVirtualPathAttribute = path2; flag2 = true; } if (andRemoveVirtualPathAttribute == null) { base.ProcessError(System.Web.SR.GetString("Invalid_reference_directive")); } else { Type referencedType = base.GetReferencedType(andRemoveVirtualPathAttribute); if (referencedType == null) { base.ProcessError(System.Web.SR.GetString("Invalid_reference_directive_attrib", new object[] { andRemoveVirtualPathAttribute })); } if (flag && !typeof(Page).IsAssignableFrom(referencedType)) { base.ProcessError(System.Web.SR.GetString("Invalid_reference_directive_attrib", new object[] { andRemoveVirtualPathAttribute })); } if (flag2 && !typeof(UserControl).IsAssignableFrom(referencedType)) { base.ProcessError(System.Web.SR.GetString("Invalid_reference_directive_attrib", new object[] { andRemoveVirtualPathAttribute })); } Util.CheckUnknownDirectiveAttributes(directiveName, directive); } } } else { base.ProcessDirective(directiveName, directive); } }