Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / 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; } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- NamespaceInfo.cs
- BackStopAuthenticationModule.cs
- TextSerializer.cs
- XmlElementCollection.cs
- PartialCachingAttribute.cs
- EditorPart.cs
- PolyQuadraticBezierSegment.cs
- StrokeCollection2.cs
- ControlValuePropertyAttribute.cs
- Visitors.cs
- ToolStripSeparatorRenderEventArgs.cs
- NotifyCollectionChangedEventArgs.cs
- StandardBindingElementCollection.cs
- TimelineGroup.cs
- ReachBasicContext.cs
- ASCIIEncoding.cs
- GlyphShapingProperties.cs
- QuotedStringWriteStateInfo.cs
- InputReportEventArgs.cs
- MaskedTextBox.cs
- SafeBitVector32.cs
- CellParagraph.cs
- MaskPropertyEditor.cs
- AVElementHelper.cs
- ItemsControl.cs
- PathFigureCollection.cs
- MemoryFailPoint.cs
- RemotingAttributes.cs
- InstancePersistenceCommand.cs
- Utils.cs
- BitmapFrameEncode.cs
- SafeMILHandleMemoryPressure.cs
- ScrollChrome.cs
- WebConvert.cs
- EntityDesignerUtils.cs
- SerializerProvider.cs
- CqlLexerHelpers.cs
- XmlDownloadManager.cs
- VarInfo.cs
- XmlObjectSerializerWriteContextComplex.cs
- TreeBuilderBamlTranslator.cs
- Assert.cs
- CharacterShapingProperties.cs
- SqlCommandSet.cs
- DbConnectionStringCommon.cs
- TargetConverter.cs
- UpdateProgress.cs
- TextDecorationCollection.cs
- HandlerFactoryWrapper.cs
- PersonalizationEntry.cs
- SocketElement.cs
- FilterQuery.cs
- InternalConfigEventArgs.cs
- BitmapPalette.cs
- PeerNameRegistration.cs
- FamilyCollection.cs
- ObjectSelectorEditor.cs
- DefaultPrintController.cs
- DataBoundControl.cs
- OleDbException.cs
- ThreadInterruptedException.cs
- CommandSet.cs
- StrongNameUtility.cs
- PanningMessageFilter.cs
- ToolStripPanelCell.cs
- Win32Exception.cs
- PathTooLongException.cs
- securitycriticaldata.cs
- AppSettingsReader.cs
- CodeCommentStatement.cs
- StringHelper.cs
- InfoCardRSACryptoProvider.cs
- DoubleKeyFrameCollection.cs
- EncryptedType.cs
- StateDesigner.cs
- TextSelectionHighlightLayer.cs
- ClientViaElement.cs
- ServiceHostFactory.cs
- AppSettingsExpressionEditor.cs
- TagPrefixAttribute.cs
- ChildTable.cs
- TableLayoutSettingsTypeConverter.cs
- DefaultAsyncDataDispatcher.cs
- Calendar.cs
- ReadOnlyDictionary.cs
- TextBox.cs
- EpmAttributeNameBuilder.cs
- Int64Storage.cs
- RangeValidator.cs
- WindowsListBox.cs
- DynamicValidator.cs
- VScrollProperties.cs
- SqlWebEventProvider.cs
- ContainerTracking.cs
- EventManager.cs
- KeyConstraint.cs
- MoveSizeWinEventHandler.cs
- WebBrowserEvent.cs
- ScrollBar.cs
- TemplatedWizardStep.cs