Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / fx / src / xsp / System / Web / Configuration / HostingPreferredMapPath.cs / 2 / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TreeNodeBindingCollection.cs
- ErrorWebPart.cs
- UIHelper.cs
- SupportingTokenSecurityTokenResolver.cs
- Adorner.cs
- CodeMemberMethod.cs
- MediaContextNotificationWindow.cs
- Opcode.cs
- MemoryResponseElement.cs
- PrintDocument.cs
- HttpEncoderUtility.cs
- DataServiceRequest.cs
- TextProperties.cs
- MultiBinding.cs
- ProtocolsConfigurationEntry.cs
- ButtonColumn.cs
- ServiceModelEnumValidator.cs
- CodeIndexerExpression.cs
- coordinatorfactory.cs
- ValidationErrorCollection.cs
- TextBounds.cs
- TableLayoutStyle.cs
- OleDbPropertySetGuid.cs
- PerformanceCounterCategory.cs
- ValidatorCollection.cs
- ValidationEventArgs.cs
- HTMLTextWriter.cs
- SiteOfOriginContainer.cs
- OrderByExpression.cs
- AnonymousIdentificationSection.cs
- SQLRoleProvider.cs
- CultureTable.cs
- ContentPresenter.cs
- SplitterDesigner.cs
- EntityFunctions.cs
- SimpleHandlerFactory.cs
- ColumnHeaderConverter.cs
- RoutedEventHandlerInfo.cs
- MetadataImporter.cs
- KeyMatchBuilder.cs
- ClientOptions.cs
- DataGridTemplateColumn.cs
- TextAutomationPeer.cs
- ObjectFullSpanRewriter.cs
- ProtocolsConfiguration.cs
- ExtensionFile.cs
- PerformanceCounterPermission.cs
- HWStack.cs
- RC2CryptoServiceProvider.cs
- ProviderConnectionPointCollection.cs
- ComponentResourceManager.cs
- ExpressionPrinter.cs
- SqlRowUpdatingEvent.cs
- Merger.cs
- GridViewRowPresenterBase.cs
- StandardBindingElementCollection.cs
- Array.cs
- StringWriter.cs
- TextRenderingModeValidation.cs
- Number.cs
- NullableLongAverageAggregationOperator.cs
- CodeTypeReferenceExpression.cs
- SignedPkcs7.cs
- HtmlContainerControl.cs
- NavigatorInput.cs
- CommandBindingCollection.cs
- metadatamappinghashervisitor.cs
- RelatedEnd.cs
- WebPartEventArgs.cs
- DataControlLinkButton.cs
- Mappings.cs
- TimelineCollection.cs
- ThicknessConverter.cs
- ZipIOExtraFieldZip64Element.cs
- Viewport2DVisual3D.cs
- XmlAttributes.cs
- SudsParser.cs
- DropTarget.cs
- ContentIterators.cs
- Figure.cs
- HttpCapabilitiesEvaluator.cs
- Deflater.cs
- SamlAuthorityBinding.cs
- MasterPageCodeDomTreeGenerator.cs
- TextTreeFixupNode.cs
- SystemFonts.cs
- WebBrowserContainer.cs
- CodeDomDesignerLoader.cs
- XmlUrlEditor.cs
- ProtectedProviderSettings.cs
- SevenBitStream.cs
- EditorZoneBase.cs
- DefaultShape.cs
- WindowVisualStateTracker.cs
- StylusEventArgs.cs
- DocumentXmlWriter.cs
- BindingSource.cs
- DataGridPreparingCellForEditEventArgs.cs
- SqlDataReader.cs
- altserialization.cs