Code:
/ DotNET / DotNET / 8.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
- EventHandlerService.cs
- DrawToolTipEventArgs.cs
- DesignerSerializationVisibilityAttribute.cs
- RowUpdatingEventArgs.cs
- OpenTypeLayout.cs
- BezierSegment.cs
- CacheOutputQuery.cs
- ButtonDesigner.cs
- Types.cs
- BamlLocalizableResource.cs
- WinFormsSpinner.cs
- SuppressMergeCheckAttribute.cs
- AnchorEditor.cs
- File.cs
- DynamicRenderer.cs
- SpanIndex.cs
- RC2CryptoServiceProvider.cs
- ModuleBuilder.cs
- SystemResourceKey.cs
- UserControl.cs
- TableRow.cs
- SEHException.cs
- DeploymentSectionCache.cs
- ListViewGroupItemCollection.cs
- PropertyTab.cs
- SequentialUshortCollection.cs
- WorkflowIdleBehavior.cs
- BrowserTree.cs
- CounterCreationDataCollection.cs
- FilePresentation.cs
- DecoderNLS.cs
- BypassElement.cs
- CheckPair.cs
- AssemblyAttributes.cs
- RemotingServices.cs
- SqlDataSourceSummaryPanel.cs
- FormViewCommandEventArgs.cs
- XmlSerializationWriter.cs
- AbstractDataSvcMapFileLoader.cs
- SynchronizationValidator.cs
- StyleXamlTreeBuilder.cs
- ResizeGrip.cs
- AspNetHostingPermission.cs
- CalendarAutomationPeer.cs
- ItemsChangedEventArgs.cs
- RowUpdatedEventArgs.cs
- XmlWhitespace.cs
- ToolStripMenuItem.cs
- SecurityCriticalDataForSet.cs
- controlskin.cs
- XmlParserContext.cs
- HtmlWindow.cs
- GlyphsSerializer.cs
- OutOfMemoryException.cs
- CollectionType.cs
- JournalNavigationScope.cs
- RewritingSimplifier.cs
- AutomationProperties.cs
- BitmapInitialize.cs
- DataGridViewControlCollection.cs
- AttachmentCollection.cs
- UserPersonalizationStateInfo.cs
- UnitySerializationHolder.cs
- Brush.cs
- DeviceSpecificChoice.cs
- StatementContext.cs
- MdiWindowListItemConverter.cs
- SecurityTokenSpecification.cs
- ResourceReferenceExpression.cs
- LongPath.cs
- AtomServiceDocumentSerializer.cs
- SqlTriggerAttribute.cs
- SingleAnimationUsingKeyFrames.cs
- HttpChannelBindingToken.cs
- GridViewCommandEventArgs.cs
- WindowsListView.cs
- ImplicitInputBrush.cs
- XmlAggregates.cs
- GlyphTypeface.cs
- MutexSecurity.cs
- FrameworkRichTextComposition.cs
- EventProviderBase.cs
- SurrogateSelector.cs
- RSAPKCS1SignatureFormatter.cs
- Freezable.cs
- XPathBuilder.cs
- ISAPIRuntime.cs
- SQLInt16.cs
- RuleProcessor.cs
- Symbol.cs
- ListViewContainer.cs
- CustomSignedXml.cs
- TransformValueSerializer.cs
- LayoutInformation.cs
- RecordsAffectedEventArgs.cs
- XmlNodeReader.cs
- MailAddress.cs
- WorkflowDesignerMessageFilter.cs
- TypeNameConverter.cs
- SqlInternalConnectionTds.cs