Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / 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; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AnnotationResource.cs
- RepeatBehavior.cs
- TcpServerChannel.cs
- XsdValidatingReader.cs
- PeerCollaborationPermission.cs
- Message.cs
- ToolStripSeparator.cs
- SafeUserTokenHandle.cs
- RowCache.cs
- XPathScanner.cs
- GACIdentityPermission.cs
- CodeCompileUnit.cs
- Helper.cs
- HttpConfigurationSystem.cs
- Size3DConverter.cs
- ActiveDocumentEvent.cs
- ImageClickEventArgs.cs
- HatchBrush.cs
- ProvidersHelper.cs
- SchemaReference.cs
- BrowserDefinitionCollection.cs
- SocketAddress.cs
- DependencyObjectType.cs
- NumberFormatter.cs
- PEFileReader.cs
- ResourceAssociationTypeEnd.cs
- ChannelSinkStacks.cs
- ItemPager.cs
- WebException.cs
- CellRelation.cs
- SafeNativeMemoryHandle.cs
- MessageQueueKey.cs
- Iis7Helper.cs
- RealizationContext.cs
- DocumentXPathNavigator.cs
- MetadataItem.cs
- LongSumAggregationOperator.cs
- DbException.cs
- SafeUserTokenHandle.cs
- NavigationFailedEventArgs.cs
- XmlFormatReaderGenerator.cs
- UIElementAutomationPeer.cs
- ObjectDataSourceSelectingEventArgs.cs
- ExpressionLink.cs
- DateTime.cs
- ProviderManager.cs
- ProgressBar.cs
- HostingEnvironmentWrapper.cs
- ScrollBarAutomationPeer.cs
- StackSpiller.Generated.cs
- BrushMappingModeValidation.cs
- RadioButtonAutomationPeer.cs
- SQLBinaryStorage.cs
- ComplexLine.cs
- WindowInteropHelper.cs
- CursorConverter.cs
- ScrollPattern.cs
- Atom10FormatterFactory.cs
- GlyphRunDrawing.cs
- PngBitmapEncoder.cs
- LineServicesRun.cs
- CustomErrorsSection.cs
- DBBindings.cs
- DataGridViewBindingCompleteEventArgs.cs
- Int32Collection.cs
- RegularExpressionValidator.cs
- Context.cs
- SHA1.cs
- SequenceRangeCollection.cs
- DataViewSettingCollection.cs
- AbstractSvcMapFileLoader.cs
- ViewGenResults.cs
- ProtocolElementCollection.cs
- XmlCDATASection.cs
- TemplatingOptionsDialog.cs
- EventItfInfo.cs
- CodeCastExpression.cs
- ServiceBehaviorElement.cs
- PriorityBindingExpression.cs
- Keyboard.cs
- Visual3DCollection.cs
- Validator.cs
- validation.cs
- UIntPtr.cs
- SyntaxCheck.cs
- SupportingTokenChannel.cs
- BuildResult.cs
- DeobfuscatingStream.cs
- WebSysDisplayNameAttribute.cs
- _FtpDataStream.cs
- NativeBuffer.cs
- followingsibling.cs
- FlowPanelDesigner.cs
- HGlobalSafeHandle.cs
- SerializationAttributes.cs
- MultipartContentParser.cs
- BridgeDataRecord.cs
- ScriptingSectionGroup.cs
- DataGridViewDataErrorEventArgs.cs
- XmlBinaryReader.cs