Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / xsp / System / Web / UI / MasterPageParser.cs / 1 / MasterPageParser.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* * Implements the ASP.NET master page parser * * Copyright (c) 1998 Microsoft Corporation */ namespace System.Web.UI { using System; using System.Collections; using System.IO; using System.Security; using System.Security.Permissions; using System.Web.Compilation; using System.Globalization; using System.Web; using System.Web.Util; /* * Parser for MasterPage */ internal sealed class MasterPageParser : UserControlParser { internal override Type DefaultBaseType { get { return typeof(System.Web.UI.MasterPage); } } internal new const string defaultDirectiveName = "master"; internal override string DefaultDirectiveName { get { return defaultDirectiveName; } } internal override Type DefaultFileLevelBuilderType { get { return typeof(FileLevelMasterPageControlBuilder); } } private Type _masterPageType; internal Type MasterPageType { get { return _masterPageType; } } private CaseInsensitiveStringSet _placeHolderList; internal CaseInsensitiveStringSet PlaceHolderList { get { if (_placeHolderList == null) _placeHolderList = new CaseInsensitiveStringSet(); return _placeHolderList; } } // Do not apply the basetype. Override this method // so the userControlbasetype do not affect masterpages. internal override void ApplyBaseType() { } internal override RootBuilder CreateDefaultFileLevelBuilder() { return new FileLevelMasterPageControlBuilder(); } internal override void ProcessDirective(string directiveName, IDictionary directive) { if (StringUtil.EqualsIgnoreCase(directiveName, "masterType")) { if (_masterPageType != null) { ProcessError(SR.GetString(SR.Only_one_directive_allowed, directiveName)); return; } _masterPageType = GetDirectiveType(directive, directiveName); Util.CheckAssignableType(typeof(MasterPage), _masterPageType); } // outputcaching is not allowed on masterpages. else if (StringUtil.EqualsIgnoreCase(directiveName, "outputcache")) { ProcessError(SR.GetString(SR.Directive_not_allowed, directiveName)); return; } else { base.ProcessDirective(directiveName, directive); } } internal override bool ProcessMainDirectiveAttribute(string deviceName, string name, string value, IDictionary parseData) { switch (name) { case "masterpagefile": // Skip validity check for expression builder (e.g. <%$ ... %>) if (IsExpressionBuilderValue(value)) return false; if (value.Length > 0) { // Add dependency on the Type by calling this method Type type = GetReferencedType(value); Util.CheckAssignableType(typeof(MasterPage), type); } // Return false to let the generic attribute processing continue return false; // outputcaching is not allowed on masterpages. case "outputcaching" : ProcessError(SR.GetString(SR.Attr_not_supported_in_directive, name, DefaultDirectiveName)); // Return false to let the generic attribute processing continue return false; default: // We didn't handle the attribute. Try the base class return base.ProcessMainDirectiveAttribute(deviceName, name, value, parseData); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* * Implements the ASP.NET master page parser * * Copyright (c) 1998 Microsoft Corporation */ namespace System.Web.UI { using System; using System.Collections; using System.IO; using System.Security; using System.Security.Permissions; using System.Web.Compilation; using System.Globalization; using System.Web; using System.Web.Util; /* * Parser for MasterPage */ internal sealed class MasterPageParser : UserControlParser { internal override Type DefaultBaseType { get { return typeof(System.Web.UI.MasterPage); } } internal new const string defaultDirectiveName = "master"; internal override string DefaultDirectiveName { get { return defaultDirectiveName; } } internal override Type DefaultFileLevelBuilderType { get { return typeof(FileLevelMasterPageControlBuilder); } } private Type _masterPageType; internal Type MasterPageType { get { return _masterPageType; } } private CaseInsensitiveStringSet _placeHolderList; internal CaseInsensitiveStringSet PlaceHolderList { get { if (_placeHolderList == null) _placeHolderList = new CaseInsensitiveStringSet(); return _placeHolderList; } } // Do not apply the basetype. Override this method // so the userControlbasetype do not affect masterpages. internal override void ApplyBaseType() { } internal override RootBuilder CreateDefaultFileLevelBuilder() { return new FileLevelMasterPageControlBuilder(); } internal override void ProcessDirective(string directiveName, IDictionary directive) { if (StringUtil.EqualsIgnoreCase(directiveName, "masterType")) { if (_masterPageType != null) { ProcessError(SR.GetString(SR.Only_one_directive_allowed, directiveName)); return; } _masterPageType = GetDirectiveType(directive, directiveName); Util.CheckAssignableType(typeof(MasterPage), _masterPageType); } // outputcaching is not allowed on masterpages. else if (StringUtil.EqualsIgnoreCase(directiveName, "outputcache")) { ProcessError(SR.GetString(SR.Directive_not_allowed, directiveName)); return; } else { base.ProcessDirective(directiveName, directive); } } internal override bool ProcessMainDirectiveAttribute(string deviceName, string name, string value, IDictionary parseData) { switch (name) { case "masterpagefile": // Skip validity check for expression builder (e.g. <%$ ... %>) if (IsExpressionBuilderValue(value)) return false; if (value.Length > 0) { // Add dependency on the Type by calling this method Type type = GetReferencedType(value); Util.CheckAssignableType(typeof(MasterPage), type); } // Return false to let the generic attribute processing continue return false; // outputcaching is not allowed on masterpages. case "outputcaching" : ProcessError(SR.GetString(SR.Attr_not_supported_in_directive, name, DefaultDirectiveName)); // Return false to let the generic attribute processing continue return false; default: // We didn't handle the attribute. Try the base class return base.ProcessMainDirectiveAttribute(deviceName, name, value, parseData); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- OracleParameter.cs
- ResourceDefaultValueAttribute.cs
- CodeMemberField.cs
- ObjectReferenceStack.cs
- WorkflowViewService.cs
- DaylightTime.cs
- Inflater.cs
- XMLDiffLoader.cs
- HorizontalAlignConverter.cs
- InputScope.cs
- WithStatement.cs
- LinqDataView.cs
- MdImport.cs
- Point.cs
- DataGridViewSelectedRowCollection.cs
- DataBoundLiteralControl.cs
- NamespaceQuery.cs
- coordinatorscratchpad.cs
- XmlPreloadedResolver.cs
- WebPartConnection.cs
- ParameterToken.cs
- Splitter.cs
- ListBoxDesigner.cs
- TableHeaderCell.cs
- Visual3DCollection.cs
- ConfigurationValidatorAttribute.cs
- PropertyEmitterBase.cs
- DataContractSerializerSection.cs
- Trigger.cs
- UTF7Encoding.cs
- PrinterResolution.cs
- ListBindingHelper.cs
- MailWebEventProvider.cs
- AnonymousIdentificationSection.cs
- ValidatingPropertiesEventArgs.cs
- ObjectResult.cs
- ContractListAdapter.cs
- ExtendedTransformFactory.cs
- CustomTypeDescriptor.cs
- ErrorInfoXmlDocument.cs
- Rotation3DAnimation.cs
- UnsafeNativeMethods.cs
- ValueExpressions.cs
- Mutex.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- TemplateControlParser.cs
- MinimizableAttributeTypeConverter.cs
- _SingleItemRequestCache.cs
- XmlTextAttribute.cs
- Cursors.cs
- InputScopeManager.cs
- SafePointer.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- BlurBitmapEffect.cs
- AccessorTable.cs
- SqlDependency.cs
- HwndSourceParameters.cs
- RemotingService.cs
- ContextBase.cs
- DataTableTypeConverter.cs
- UniqueConstraint.cs
- HybridWebProxyFinder.cs
- SectionInput.cs
- ConcurrencyMode.cs
- FunctionQuery.cs
- Blend.cs
- PointF.cs
- ConfigurationSectionGroup.cs
- ButtonStandardAdapter.cs
- SpeechAudioFormatInfo.cs
- FixedSOMPageConstructor.cs
- StoreItemCollection.cs
- MimeTypeMapper.cs
- DbDeleteCommandTree.cs
- WindowShowOrOpenTracker.cs
- InvalidProgramException.cs
- WebPartEditorCancelVerb.cs
- CultureSpecificStringDictionary.cs
- ReadOnlyObservableCollection.cs
- SecurityTokenParametersEnumerable.cs
- TemplateControl.cs
- FilteredAttributeCollection.cs
- X509KeyIdentifierClauseType.cs
- SaveWorkflowAsyncResult.cs
- BitmapEffectDrawingContextWalker.cs
- HandledEventArgs.cs
- SponsorHelper.cs
- DataServiceBuildProvider.cs
- PersonalizablePropertyEntry.cs
- WindowsEditBoxRange.cs
- ObjectToken.cs
- DataControlCommands.cs
- BitmapSizeOptions.cs
- StrongNameUtility.cs
- PopupRootAutomationPeer.cs
- ComboBox.cs
- ValidationException.cs
- LabelAutomationPeer.cs
- MetadataCache.cs
- XmlSchemaComplexContentExtension.cs