Code:
/ 4.0 / 4.0 / 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. //------------------------------------------------------------------------------ //// 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
- GridItemProviderWrapper.cs
- BaseCodeDomTreeGenerator.cs
- WebPartsPersonalization.cs
- EventListener.cs
- StrongNameIdentityPermission.cs
- PropertyEmitter.cs
- XmlSchemaAttributeGroupRef.cs
- SqlStatistics.cs
- SqlPersonalizationProvider.cs
- ProtocolsSection.cs
- SingleAnimationUsingKeyFrames.cs
- SelectionProcessor.cs
- ZeroOpNode.cs
- SubtreeProcessor.cs
- XXXOnTypeBuilderInstantiation.cs
- ReliableMessagingHelpers.cs
- FormsAuthenticationEventArgs.cs
- entitydatasourceentitysetnameconverter.cs
- SafeSecurityHelper.cs
- SineEase.cs
- ResourcePermissionBase.cs
- CharacterString.cs
- ScrollEvent.cs
- PermissionRequestEvidence.cs
- Random.cs
- HighContrastHelper.cs
- CurrentChangingEventManager.cs
- SqlBulkCopyColumnMapping.cs
- ComboBoxDesigner.cs
- ServicePoint.cs
- RenderDataDrawingContext.cs
- WebRequest.cs
- WebAdminConfigurationHelper.cs
- TraceFilter.cs
- WebReference.cs
- DelegatingTypeDescriptionProvider.cs
- PartialArray.cs
- CheckBoxField.cs
- DataAccessException.cs
- EdmType.cs
- ParseChildrenAsPropertiesAttribute.cs
- RelationalExpressions.cs
- DocumentPageViewAutomationPeer.cs
- SecurityCredentialsManager.cs
- SQLMoney.cs
- XmlHierarchicalDataSourceView.cs
- TransactionChannel.cs
- DataViewSetting.cs
- XPathNavigatorReader.cs
- EditBehavior.cs
- RenderContext.cs
- ToolStripDropDownItem.cs
- TableRowCollection.cs
- SchemaEntity.cs
- JsonEnumDataContract.cs
- ProtocolsSection.cs
- Common.cs
- SqlConnectionStringBuilder.cs
- ExponentialEase.cs
- HtmlControl.cs
- UIElement.cs
- SafeNativeMethods.cs
- DataGridViewCellEventArgs.cs
- TwoPhaseCommit.cs
- SimpleBitVector32.cs
- RectangleGeometry.cs
- ResourceAssociationTypeEnd.cs
- UserPersonalizationStateInfo.cs
- RedirectionProxy.cs
- ByteRangeDownloader.cs
- RealProxy.cs
- PaperSize.cs
- SqlProviderManifest.cs
- FixedPosition.cs
- ReverseInheritProperty.cs
- RequestedSignatureDialog.cs
- PageParser.cs
- Pens.cs
- PartialCachingControl.cs
- entitydatasourceentitysetnameconverter.cs
- TextFormatterImp.cs
- Header.cs
- HtmlControlAdapter.cs
- COM2PropertyDescriptor.cs
- CannotUnloadAppDomainException.cs
- SqlCacheDependency.cs
- ComboBox.cs
- OrderPreservingPipeliningMergeHelper.cs
- SourceElementsCollection.cs
- WMIGenerator.cs
- StoreContentChangedEventArgs.cs
- DataStorage.cs
- EntityViewGenerator.cs
- CharEntityEncoderFallback.cs
- ViewKeyConstraint.cs
- CodeCompileUnit.cs
- PointAnimationClockResource.cs
- DetailsViewInsertEventArgs.cs
- ProgressChangedEventArgs.cs
- WorkflowMarkupSerializationException.cs