Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- HandlerMappingMemo.cs
- NamespaceEmitter.cs
- ComplexTypeEmitter.cs
- GlyphTypeface.cs
- ProfileService.cs
- DataRelation.cs
- TextRunProperties.cs
- EmptyReadOnlyDictionaryInternal.cs
- CachedPathData.cs
- ConfigurationManagerHelper.cs
- ObjectViewQueryResultData.cs
- HtmlSelectionListAdapter.cs
- WebPartMinimizeVerb.cs
- ServicePoint.cs
- ContainerUIElement3D.cs
- FormCollection.cs
- SendActivityDesignerTheme.cs
- ColorBlend.cs
- XPathScanner.cs
- HitTestParameters.cs
- RootBrowserWindowProxy.cs
- IPCCacheManager.cs
- Evidence.cs
- DocumentSequence.cs
- Rotation3D.cs
- StreamGeometry.cs
- XmlSchemaAttributeGroup.cs
- ByteStreamGeometryContext.cs
- HuffModule.cs
- ScriptRef.cs
- DecoratedNameAttribute.cs
- StartFileNameEditor.cs
- RequestCache.cs
- NullRuntimeConfig.cs
- CfgParser.cs
- ReadOnlyPermissionSet.cs
- SynchronizedDispatch.cs
- WindowsListViewItemStartMenu.cs
- TextServicesLoader.cs
- PropertiesTab.cs
- safemediahandle.cs
- WindowClosedEventArgs.cs
- LinkArea.cs
- DataObject.cs
- StringSource.cs
- ProxyManager.cs
- FastEncoderWindow.cs
- ACE.cs
- TypeSystem.cs
- SqlUserDefinedAggregateAttribute.cs
- NativeMethods.cs
- Scene3D.cs
- TargetParameterCountException.cs
- XPathNodeInfoAtom.cs
- CheckedPointers.cs
- CallbackHandler.cs
- ToolboxComponentsCreatedEventArgs.cs
- RemotingException.cs
- GZipDecoder.cs
- BitmapMetadata.cs
- RouteItem.cs
- DataRow.cs
- oledbmetadatacolumnnames.cs
- CopyOfAction.cs
- InternalResources.cs
- InputScopeNameConverter.cs
- UnsafeNativeMethods.cs
- StateDesigner.TransitionInfo.cs
- ComEventsHelper.cs
- DecoratedNameAttribute.cs
- WindowsTooltip.cs
- PagerSettings.cs
- SafeFileMappingHandle.cs
- HtmlTableCell.cs
- SoapEnvelopeProcessingElement.cs
- XmlElementAttribute.cs
- CachedFontFamily.cs
- ReadOnlyMetadataCollection.cs
- PreProcessor.cs
- PlanCompilerUtil.cs
- DateTimePickerDesigner.cs
- Vector3DCollection.cs
- SqlColumnizer.cs
- ListBase.cs
- Utils.cs
- ListViewItemMouseHoverEvent.cs
- MetadataExporter.cs
- CheckPair.cs
- SafeNativeMethods.cs
- ListViewContainer.cs
- ProtocolsConfiguration.cs
- VirtualPathUtility.cs
- DbTransaction.cs
- EventTask.cs
- ReferencedAssembly.cs
- VectorKeyFrameCollection.cs
- StatusBarPanelClickEvent.cs
- DataPagerCommandEventArgs.cs
- ZoneIdentityPermission.cs
- PersonalizablePropertyEntry.cs