Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / Configuration / HostingPreferredMapPath.cs / 1305376 / HostingPreferredMapPath.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Configuration { using System.Configuration; using System.Collections; using System.Globalization; using System.Xml; using System.Text; using System.Web.Util; using System.Web.UI; using System.IO; using System.Web.Hosting; // // IConfigMapPath that uses the HostingEnvironment's IConfigMapPath for // paths that it maps, and uses the web server IConfigMapPath for // all other paths. // // This allows us to use mappings for an app using SimpleApplicationHost, // while still correctly mapping paths outside the app. // class HostingPreferredMapPath : IConfigMapPath { IConfigMapPath _iisConfigMapPath; IConfigMapPath _hostingConfigMapPath; internal static IConfigMapPath GetInstance() { IConfigMapPath iisConfigMapPath = IISMapPath.GetInstance(); IConfigMapPath hostingConfigMapPath = HostingEnvironment.ConfigMapPath; // Only delegate if the types implementing IConfigMapPath are different. if (hostingConfigMapPath == null || iisConfigMapPath.GetType() == hostingConfigMapPath.GetType()) return iisConfigMapPath; return new HostingPreferredMapPath(iisConfigMapPath, hostingConfigMapPath); } HostingPreferredMapPath(IConfigMapPath iisConfigMapPath, IConfigMapPath hostingConfigMapPath) { _iisConfigMapPath = iisConfigMapPath; _hostingConfigMapPath = hostingConfigMapPath; } public string GetMachineConfigFilename() { string filename = _hostingConfigMapPath.GetMachineConfigFilename(); if (string.IsNullOrEmpty(filename)) { filename = _iisConfigMapPath.GetMachineConfigFilename(); } return filename; } public string GetRootWebConfigFilename() { string filename = _hostingConfigMapPath.GetRootWebConfigFilename(); if (string.IsNullOrEmpty(filename)) { filename = _iisConfigMapPath.GetRootWebConfigFilename(); } return filename; } public void GetPathConfigFilename( string siteID, string path, out string directory, out string baseName) { _hostingConfigMapPath.GetPathConfigFilename(siteID, path, out directory, out baseName); if (string.IsNullOrEmpty(directory)) { _iisConfigMapPath.GetPathConfigFilename(siteID, path, out directory, out baseName); } } public void GetDefaultSiteNameAndID(out string siteName, out string siteID) { _hostingConfigMapPath.GetDefaultSiteNameAndID(out siteName, out siteID); if (string.IsNullOrEmpty(siteID)) { _iisConfigMapPath.GetDefaultSiteNameAndID(out siteName, out siteID); } } public void ResolveSiteArgument(string siteArgument, out string siteName, out string siteID) { _hostingConfigMapPath.ResolveSiteArgument(siteArgument, out siteName, out siteID); if (string.IsNullOrEmpty(siteID)) { _iisConfigMapPath.ResolveSiteArgument(siteArgument, out siteName, out siteID); } } public string MapPath(string siteID, string path) { string physicalPath = _hostingConfigMapPath.MapPath(siteID, path); if (string.IsNullOrEmpty(physicalPath)) { physicalPath = _iisConfigMapPath.MapPath(siteID, path); } return physicalPath; } public string GetAppPathForPath(string siteID, string path) { string appPath = _hostingConfigMapPath.GetAppPathForPath(siteID, path); if (appPath == null) { appPath = _iisConfigMapPath.GetAppPathForPath(siteID, path); } return appPath; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Configuration { using System.Configuration; using System.Collections; using System.Globalization; using System.Xml; using System.Text; using System.Web.Util; using System.Web.UI; using System.IO; using System.Web.Hosting; // // IConfigMapPath that uses the HostingEnvironment's IConfigMapPath for // paths that it maps, and uses the web server IConfigMapPath for // all other paths. // // This allows us to use mappings for an app using SimpleApplicationHost, // while still correctly mapping paths outside the app. // class HostingPreferredMapPath : IConfigMapPath { IConfigMapPath _iisConfigMapPath; IConfigMapPath _hostingConfigMapPath; internal static IConfigMapPath GetInstance() { IConfigMapPath iisConfigMapPath = IISMapPath.GetInstance(); IConfigMapPath hostingConfigMapPath = HostingEnvironment.ConfigMapPath; // Only delegate if the types implementing IConfigMapPath are different. if (hostingConfigMapPath == null || iisConfigMapPath.GetType() == hostingConfigMapPath.GetType()) return iisConfigMapPath; return new HostingPreferredMapPath(iisConfigMapPath, hostingConfigMapPath); } HostingPreferredMapPath(IConfigMapPath iisConfigMapPath, IConfigMapPath hostingConfigMapPath) { _iisConfigMapPath = iisConfigMapPath; _hostingConfigMapPath = hostingConfigMapPath; } public string GetMachineConfigFilename() { string filename = _hostingConfigMapPath.GetMachineConfigFilename(); if (string.IsNullOrEmpty(filename)) { filename = _iisConfigMapPath.GetMachineConfigFilename(); } return filename; } public string GetRootWebConfigFilename() { string filename = _hostingConfigMapPath.GetRootWebConfigFilename(); if (string.IsNullOrEmpty(filename)) { filename = _iisConfigMapPath.GetRootWebConfigFilename(); } return filename; } public void GetPathConfigFilename( string siteID, string path, out string directory, out string baseName) { _hostingConfigMapPath.GetPathConfigFilename(siteID, path, out directory, out baseName); if (string.IsNullOrEmpty(directory)) { _iisConfigMapPath.GetPathConfigFilename(siteID, path, out directory, out baseName); } } public void GetDefaultSiteNameAndID(out string siteName, out string siteID) { _hostingConfigMapPath.GetDefaultSiteNameAndID(out siteName, out siteID); if (string.IsNullOrEmpty(siteID)) { _iisConfigMapPath.GetDefaultSiteNameAndID(out siteName, out siteID); } } public void ResolveSiteArgument(string siteArgument, out string siteName, out string siteID) { _hostingConfigMapPath.ResolveSiteArgument(siteArgument, out siteName, out siteID); if (string.IsNullOrEmpty(siteID)) { _iisConfigMapPath.ResolveSiteArgument(siteArgument, out siteName, out siteID); } } public string MapPath(string siteID, string path) { string physicalPath = _hostingConfigMapPath.MapPath(siteID, path); if (string.IsNullOrEmpty(physicalPath)) { physicalPath = _iisConfigMapPath.MapPath(siteID, path); } return physicalPath; } public string GetAppPathForPath(string siteID, string path) { string appPath = _hostingConfigMapPath.GetAppPathForPath(siteID, path); if (appPath == null) { appPath = _iisConfigMapPath.GetAppPathForPath(siteID, path); } return appPath; } } } // 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
- NonVisualControlAttribute.cs
- XmlBoundElement.cs
- ShapingWorkspace.cs
- EditorZoneBase.cs
- AuthorizationSection.cs
- DataExpression.cs
- EFAssociationProvider.cs
- RoleExceptions.cs
- ParseChildrenAsPropertiesAttribute.cs
- InstanceHandle.cs
- TextSimpleMarkerProperties.cs
- Parameter.cs
- _NestedMultipleAsyncResult.cs
- SystemWebSectionGroup.cs
- ScaleTransform.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- XmlSortKeyAccumulator.cs
- ByteRangeDownloader.cs
- CheckableControlBaseAdapter.cs
- EdmConstants.cs
- NativeMethods.cs
- basecomparevalidator.cs
- COM2IManagedPerPropertyBrowsingHandler.cs
- WindowVisualStateTracker.cs
- EventHandlerList.cs
- MD5.cs
- DesignUtil.cs
- ReflectionPermission.cs
- Stopwatch.cs
- DispatcherObject.cs
- basenumberconverter.cs
- HttpStreamXmlDictionaryWriter.cs
- Constant.cs
- WebScriptEnablingBehavior.cs
- ReadOnlyCollection.cs
- EndpointIdentityExtension.cs
- HiddenField.cs
- log.cs
- CodeArrayCreateExpression.cs
- ComEventsHelper.cs
- EntityDescriptor.cs
- LayoutSettings.cs
- DateTimeFormatInfo.cs
- LogEntryUtils.cs
- TraceContext.cs
- DependencyPropertyDescriptor.cs
- DataGridViewCellStyleChangedEventArgs.cs
- HttpException.cs
- TypeResolvingOptions.cs
- XmlSchemaSubstitutionGroup.cs
- figurelengthconverter.cs
- ApplicationHost.cs
- ListBoxItemAutomationPeer.cs
- UIElementParagraph.cs
- PenContext.cs
- BitmapEffect.cs
- FillBehavior.cs
- CustomValidator.cs
- ComponentResourceKey.cs
- TouchEventArgs.cs
- DetailsViewDeleteEventArgs.cs
- CfgArc.cs
- entityreference_tresulttype.cs
- Slider.cs
- ConstructorExpr.cs
- SkewTransform.cs
- WebPartConnectionsDisconnectVerb.cs
- PropagatorResult.cs
- SymbolType.cs
- Sorting.cs
- PropertyEmitter.cs
- InvalidOperationException.cs
- SafeFileMapViewHandle.cs
- keycontainerpermission.cs
- ImageButton.cs
- QueryBranchOp.cs
- ValidatorAttribute.cs
- SqlFileStream.cs
- InvokeHandlers.cs
- Model3DCollection.cs
- QuerySettings.cs
- Context.cs
- HitTestFilterBehavior.cs
- RegexTree.cs
- ThreadStaticAttribute.cs
- SoapHeader.cs
- EntityDataSourceChangedEventArgs.cs
- ImageSourceConverter.cs
- TextAdaptor.cs
- InternalPolicyElement.cs
- bindurihelper.cs
- EntityContainerEmitter.cs
- FixedSOMSemanticBox.cs
- StateMachineSubscriptionManager.cs
- ManualResetEventSlim.cs
- PropertyInformationCollection.cs
- BindableTemplateBuilder.cs
- EventRoute.cs
- FrameSecurityDescriptor.cs
- ProjectionPlan.cs