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
- DataGridItem.cs
- WebConfigurationManager.cs
- Cursor.cs
- GCHandleCookieTable.cs
- TreeView.cs
- StrongNameMembershipCondition.cs
- StringFunctions.cs
- ProfileInfo.cs
- IList.cs
- CoTaskMemHandle.cs
- NamedPipeTransportBindingElement.cs
- IdentityHolder.cs
- DispatcherExceptionEventArgs.cs
- EditorPartCollection.cs
- RowSpanVector.cs
- ColumnMapVisitor.cs
- XmlReflectionImporter.cs
- WebPartManager.cs
- SizeLimitedCache.cs
- XmlEncoding.cs
- ConnectorMovedEventArgs.cs
- ProfileParameter.cs
- CDSCollectionETWBCLProvider.cs
- ComponentCommands.cs
- FieldCollectionEditor.cs
- BindableAttribute.cs
- TextRunCacheImp.cs
- DiagnosticsConfiguration.cs
- ObjectListGeneralPage.cs
- PolicyChain.cs
- LinearKeyFrames.cs
- BulletedListEventArgs.cs
- DragDeltaEventArgs.cs
- DiscriminatorMap.cs
- SslStream.cs
- ObjectReaderCompiler.cs
- IriParsingElement.cs
- CacheRequest.cs
- ScrollBarAutomationPeer.cs
- RequestQueryProcessor.cs
- EpmCustomContentWriterNodeData.cs
- DataMemberAttribute.cs
- Label.cs
- HtmlLink.cs
- TextParagraphView.cs
- SoapFaultCodes.cs
- PathNode.cs
- XmlObjectSerializerReadContext.cs
- QueryContinueDragEvent.cs
- QilTypeChecker.cs
- DataGridItemEventArgs.cs
- WindowsAuthenticationEventArgs.cs
- ExpandableObjectConverter.cs
- LateBoundBitmapDecoder.cs
- ToolStripSettings.cs
- ThrowHelper.cs
- StorageAssociationSetMapping.cs
- CodeAttributeDeclaration.cs
- XmlSchemaIdentityConstraint.cs
- RtfNavigator.cs
- RoleService.cs
- OdbcEnvironmentHandle.cs
- PageThemeCodeDomTreeGenerator.cs
- IdlingCommunicationPool.cs
- SAPICategories.cs
- XamlRtfConverter.cs
- Signature.cs
- RadioButton.cs
- OleDbParameter.cs
- BrowserCapabilitiesFactoryBase.cs
- XmlCDATASection.cs
- FixedSOMTextRun.cs
- Int32Storage.cs
- MetadataHelper.cs
- Ppl.cs
- ThreadWorkerController.cs
- Point4DConverter.cs
- ComboBoxItem.cs
- CapabilitiesUse.cs
- wmiprovider.cs
- WindowsClaimSet.cs
- NetworkAddressChange.cs
- XmlnsPrefixAttribute.cs
- TemplateParser.cs
- DesignerHelpers.cs
- DisposableCollectionWrapper.cs
- HyperLinkColumn.cs
- ResourceBinder.cs
- AssemblyCollection.cs
- RadioButtonPopupAdapter.cs
- EndpointInfoCollection.cs
- MarkupExtensionReturnTypeAttribute.cs
- CheckBoxBaseAdapter.cs
- LocalizationComments.cs
- GestureRecognizer.cs
- UriGenerator.cs
- BasePattern.cs
- WebPart.cs
- SatelliteContractVersionAttribute.cs
- Crc32Helper.cs