Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / DEVDIV / depot / DevDiv / releases / whidbey / QFE / ndp / fx / src / xsp / System / Web / UI / PageHandlerFactory.cs / 3 / PageHandlerFactory.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* * Handler Factory implementation for Page files * * Copyright (c) 1999 Microsoft Corporation */ namespace System.Web.UI { using System.Runtime.Serialization.Formatters; using System.IO; using System.Security.Permissions; using System.Web.Compilation; using System.Web.Util; using Debug=System.Web.Util.Debug; /* * Handler Factory implementation for ASP.NET files */ [PermissionSet(SecurityAction.LinkDemand, Unrestricted = true)] [PermissionSet(SecurityAction.InheritanceDemand, Unrestricted=true)] public class PageHandlerFactory : IHttpHandlerFactory2 { private bool _isInheritedInstance; protected internal PageHandlerFactory() { // Check whether this is the exact PageHandlerFactory, or a derived class _isInheritedInstance = (GetType() != typeof(PageHandlerFactory)); } public virtual IHttpHandler GetHandler(HttpContext context, string requestType, string virtualPath, string path) { Debug.Trace("PageHandlerFactory", "PageHandlerFactory: " + virtualPath); // This should never get called in ISAPI mode but currently is in integrated mode // Debug.Assert(false); return GetHandlerHelper(context, requestType, VirtualPath.CreateNonRelative(virtualPath), path); } IHttpHandler IHttpHandlerFactory2.GetHandler(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath) { // If it's a derived class, we must call the old (less efficient) GetHandler, in // case it was overriden if (_isInheritedInstance) { return GetHandler(context, requestType, virtualPath.VirtualPathString, physicalPath); } return GetHandlerHelper(context, requestType, virtualPath, physicalPath); } public virtual void ReleaseHandler(IHttpHandler handler) { } private IHttpHandler GetHandlerHelper(HttpContext context, string requestType, VirtualPath virtualPath, string physicalPath) { Page page = BuildManager.CreateInstanceFromVirtualPath( virtualPath, typeof(Page), context, true /*allowCrossApp*/, true /*noAssert*/) as Page; if (page == null) return null; page.TemplateControlVirtualPath = virtualPath; return page; } } } // 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. // //----------------------------------------------------------------------------- /* * Handler Factory implementation for Page files * * Copyright (c) 1999 Microsoft Corporation */ namespace System.Web.UI { using System.Runtime.Serialization.Formatters; using System.IO; using System.Security.Permissions; using System.Web.Compilation; using System.Web.Util; using Debug=System.Web.Util.Debug; /* * Handler Factory implementation for ASP.NET files */ [PermissionSet(SecurityAction.LinkDemand, Unrestricted = true)] [PermissionSet(SecurityAction.InheritanceDemand, Unrestricted=true)] public class PageHandlerFactory : IHttpHandlerFactory2 { private bool _isInheritedInstance; protected internal PageHandlerFactory() { // Check whether this is the exact PageHandlerFactory, or a derived class _isInheritedInstance = (GetType() != typeof(PageHandlerFactory)); } public virtual IHttpHandler GetHandler(HttpContext context, string requestType, string virtualPath, string path) { Debug.Trace("PageHandlerFactory", "PageHandlerFactory: " + virtualPath); // This should never get called in ISAPI mode but currently is in integrated mode // Debug.Assert(false); return GetHandlerHelper(context, requestType, VirtualPath.CreateNonRelative(virtualPath), path); } IHttpHandler IHttpHandlerFactory2.GetHandler(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath) { // If it's a derived class, we must call the old (less efficient) GetHandler, in // case it was overriden if (_isInheritedInstance) { return GetHandler(context, requestType, virtualPath.VirtualPathString, physicalPath); } return GetHandlerHelper(context, requestType, virtualPath, physicalPath); } public virtual void ReleaseHandler(IHttpHandler handler) { } private IHttpHandler GetHandlerHelper(HttpContext context, string requestType, VirtualPath virtualPath, string physicalPath) { Page page = BuildManager.CreateInstanceFromVirtualPath( virtualPath, typeof(Page), context, true /*allowCrossApp*/, true /*noAssert*/) as Page; if (page == null) return null; page.TemplateControlVirtualPath = virtualPath; return page; } } } // 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
- WorkflowLayouts.cs
- InlineUIContainer.cs
- XsltContext.cs
- MaskInputRejectedEventArgs.cs
- MenuItemStyleCollection.cs
- ImmutablePropertyDescriptorGridEntry.cs
- SchemaDeclBase.cs
- SplineQuaternionKeyFrame.cs
- DbParameterCollection.cs
- RootProjectionNode.cs
- WSHttpBinding.cs
- PropertyMapper.cs
- AddInToken.cs
- PieceDirectory.cs
- RangeBaseAutomationPeer.cs
- Array.cs
- DataListItem.cs
- Margins.cs
- TimelineCollection.cs
- BitmapScalingModeValidation.cs
- MimeParameter.cs
- UniqueContractNameValidationBehavior.cs
- WebDisplayNameAttribute.cs
- input.cs
- VBIdentifierNameEditor.cs
- EntityTemplateUserControl.cs
- QilInvokeLateBound.cs
- PersistencePipeline.cs
- SchemaTypeEmitter.cs
- SerialErrors.cs
- Query.cs
- JsonXmlDataContract.cs
- InputLanguageEventArgs.cs
- CommandHelpers.cs
- BamlReader.cs
- RoleBoolean.cs
- ReliabilityContractAttribute.cs
- GeometryModel3D.cs
- CellPartitioner.cs
- PagesChangedEventArgs.cs
- SQLDateTimeStorage.cs
- LocatorManager.cs
- WizardPanel.cs
- IdentityHolder.cs
- DataProviderNameConverter.cs
- ComponentManagerBroker.cs
- XmlAttributes.cs
- FlowDocumentFormatter.cs
- HttpCacheParams.cs
- XmlRawWriterWrapper.cs
- FreezableCollection.cs
- XmlNamespaceManager.cs
- OleDbReferenceCollection.cs
- RoleGroupCollectionEditor.cs
- RepeatInfo.cs
- ReleaseInstanceMode.cs
- EditorPartCollection.cs
- SqlServices.cs
- SrgsGrammar.cs
- XmlSchemaSimpleTypeUnion.cs
- CodeTypeOfExpression.cs
- SafeFileMappingHandle.cs
- RectConverter.cs
- Light.cs
- ArgIterator.cs
- WsatConfiguration.cs
- DateTimeConverter2.cs
- DataServiceException.cs
- QuaternionConverter.cs
- UnicodeEncoding.cs
- ItemsChangedEventArgs.cs
- WebConfigurationHost.cs
- XmlSchemaSimpleContent.cs
- InternalPolicyElement.cs
- MulticastIPAddressInformationCollection.cs
- ExpressionBinding.cs
- XsltLoader.cs
- TypeDependencyAttribute.cs
- CornerRadius.cs
- UIElementIsland.cs
- DeleteStoreRequest.cs
- cryptoapiTransform.cs
- DataContractSet.cs
- InputProcessorProfiles.cs
- OutputWindow.cs
- OneOfTypeConst.cs
- LiteralTextParser.cs
- smtppermission.cs
- ArrayTypeMismatchException.cs
- Script.cs
- ErasingStroke.cs
- FormatPage.cs
- CompiledRegexRunner.cs
- StretchValidation.cs
- ResourceIDHelper.cs
- TextEditorContextMenu.cs
- ControlIdConverter.cs
- CfgParser.cs
- cryptoapiTransform.cs
- RecognizerStateChangedEventArgs.cs