Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / DEVDIV / depot / DevDiv / releases / whidbey / QFE / 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 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. //------------------------------------------------------------------------------ //// 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 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- HttpCookie.cs
- GCHandleCookieTable.cs
- VirtualDirectoryMapping.cs
- Header.cs
- FileUpload.cs
- Helpers.cs
- PermissionToken.cs
- DigitShape.cs
- ExpressionBuilder.cs
- PropVariant.cs
- SQLConvert.cs
- ImageSource.cs
- EventHandlerList.cs
- BrowserCapabilitiesFactory.cs
- NamespaceCollection.cs
- UrlAuthFailedErrorFormatter.cs
- State.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- SyntaxCheck.cs
- KnownTypes.cs
- ComboBoxRenderer.cs
- BaseTemplateParser.cs
- DirectoryInfo.cs
- BeginCreateSecurityTokenRequest.cs
- SamlAuthorizationDecisionStatement.cs
- ControlDesigner.cs
- ReachSerializableProperties.cs
- ToolStripItemEventArgs.cs
- ColumnResizeAdorner.cs
- AxisAngleRotation3D.cs
- DataReaderContainer.cs
- SocketCache.cs
- GridEntryCollection.cs
- ListViewEditEventArgs.cs
- configsystem.cs
- GetTokenRequest.cs
- ColorConverter.cs
- DashStyle.cs
- ProcessProtocolHandler.cs
- ParsedAttributeCollection.cs
- TextRangeEditTables.cs
- EllipseGeometry.cs
- Exceptions.cs
- XmlUtf8RawTextWriter.cs
- SecurityManager.cs
- WorkflowViewService.cs
- MeasureItemEvent.cs
- HtmlValidationSummaryAdapter.cs
- EventMappingSettingsCollection.cs
- _TimerThread.cs
- ModelEditingScope.cs
- SettingsAttributeDictionary.cs
- RealProxy.cs
- PipelineModuleStepContainer.cs
- AnyAllSearchOperator.cs
- AnnotationMap.cs
- UnsafeCollabNativeMethods.cs
- XmlException.cs
- Int32.cs
- Registration.cs
- HighlightVisual.cs
- TokenBasedSet.cs
- XmlEntity.cs
- AttributeCollection.cs
- MappingSource.cs
- APCustomTypeDescriptor.cs
- MatrixAnimationUsingPath.cs
- TextBoxView.cs
- FlowPosition.cs
- TemplateField.cs
- XmlSchemaDocumentation.cs
- IssuedTokensHeader.cs
- LabelAutomationPeer.cs
- SqlConnectionStringBuilder.cs
- SiteMapNodeCollection.cs
- ServiceProviders.cs
- XamlVector3DCollectionSerializer.cs
- OdbcParameterCollection.cs
- SiteIdentityPermission.cs
- SqlDataSourceConfigureSortForm.cs
- iisPickupDirectory.cs
- CorrelationKey.cs
- TextRunCache.cs
- SafeHandles.cs
- wmiprovider.cs
- InvalidDataException.cs
- RadioButtonAutomationPeer.cs
- HostExecutionContextManager.cs
- ConfigurationLocation.cs
- ConnectionString.cs
- Switch.cs
- InfoCardServiceInstallComponent.cs
- PointLight.cs
- TagMapInfo.cs
- AppSettingsExpressionBuilder.cs
- RoutedEvent.cs
- messageonlyhwndwrapper.cs
- SafeThreadHandle.cs
- GridProviderWrapper.cs
- NavigationHelper.cs