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
- SamlAuthenticationClaimResource.cs
- DoubleCollection.cs
- SecurityUniqueId.cs
- ManagementScope.cs
- XmlName.cs
- DropShadowEffect.cs
- AppSettings.cs
- RestClientProxyHandler.cs
- AdRotator.cs
- Pointer.cs
- SplitContainerDesigner.cs
- RequestResizeEvent.cs
- FilterableAttribute.cs
- WebUtil.cs
- AssemblyHash.cs
- WarningException.cs
- BulletDecorator.cs
- GridItemPattern.cs
- NullToBooleanConverter.cs
- CounterCreationData.cs
- ScrollEventArgs.cs
- DrawListViewItemEventArgs.cs
- Utils.cs
- WindowsIPAddress.cs
- DesignBindingPropertyDescriptor.cs
- TypeDescriptorContext.cs
- UnhandledExceptionEventArgs.cs
- RangeValuePattern.cs
- Barrier.cs
- Compilation.cs
- TypedTableBaseExtensions.cs
- ListParaClient.cs
- DocumentReferenceCollection.cs
- NumberFunctions.cs
- MemoryStream.cs
- BuildResultCache.cs
- ToolStripOverflow.cs
- WindowsGraphics.cs
- WizardDesigner.cs
- IOThreadScheduler.cs
- XmlSubtreeReader.cs
- Timer.cs
- ConfigurationPermission.cs
- EditorAttribute.cs
- FixUpCollection.cs
- DataGridBoolColumn.cs
- WebCategoryAttribute.cs
- _TLSstream.cs
- Types.cs
- HeaderedItemsControl.cs
- ListBindingHelper.cs
- ReferentialConstraint.cs
- Canonicalizers.cs
- ToolStripLocationCancelEventArgs.cs
- SqlFileStream.cs
- AuthenticationSection.cs
- CalendarAutoFormatDialog.cs
- PathSegment.cs
- Selection.cs
- DataObjectCopyingEventArgs.cs
- Setter.cs
- CompilerError.cs
- Matrix.cs
- ReferencedAssemblyResolver.cs
- SrgsDocumentParser.cs
- SettingsPropertyValueCollection.cs
- CorrelationToken.cs
- XmlQueryContext.cs
- AssertUtility.cs
- Transform.cs
- COM2IProvidePropertyBuilderHandler.cs
- MSAAEventDispatcher.cs
- QueryResponse.cs
- FlowThrottle.cs
- PerfCounters.cs
- VisualBrush.cs
- ListViewDeletedEventArgs.cs
- AmbientLight.cs
- SqlDelegatedTransaction.cs
- MessageQueueConverter.cs
- RotateTransform3D.cs
- UniqueIdentifierService.cs
- HttpRequestBase.cs
- TypeConstant.cs
- ToolStripComboBox.cs
- SelectionEditor.cs
- Rect3DConverter.cs
- FontSizeConverter.cs
- X509ServiceCertificateAuthenticationElement.cs
- RegexWorker.cs
- Transform.cs
- OleDbParameter.cs
- DataObjectMethodAttribute.cs
- GenerateScriptTypeAttribute.cs
- OdbcStatementHandle.cs
- SqlExpressionNullability.cs
- WebPartManagerDesigner.cs
- DataGridRelationshipRow.cs
- CompilerWrapper.cs
- XmlMemberMapping.cs