Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / DEVDIV / depot / DevDiv / releases / 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. //------------------------------------------------------------------------------ //// 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
- WSSecurityPolicy11.cs
- Model3DGroup.cs
- EventLogPermissionAttribute.cs
- WebPartCatalogCloseVerb.cs
- EmptyElement.cs
- CompilerResults.cs
- SelectionProcessor.cs
- SqlConnectionPoolProviderInfo.cs
- JsonWriter.cs
- Transform.cs
- XMLSyntaxException.cs
- _LocalDataStore.cs
- Base64Stream.cs
- HybridObjectCache.cs
- Errors.cs
- ArraySortHelper.cs
- EmbossBitmapEffect.cs
- ComponentResourceKeyConverter.cs
- UnsettableComboBox.cs
- FileSystemInfo.cs
- FlagPanel.cs
- NetStream.cs
- OptimizedTemplateContentHelper.cs
- Deserializer.cs
- AnimatedTypeHelpers.cs
- ProviderBase.cs
- CustomValidator.cs
- SqlUdtInfo.cs
- DrawTreeNodeEventArgs.cs
- PermissionSetTriple.cs
- AuthStoreRoleProvider.cs
- SecurityContext.cs
- ResourcePermissionBaseEntry.cs
- ExpressionHelper.cs
- SpellerHighlightLayer.cs
- RecommendedAsConfigurableAttribute.cs
- GeneralTransform3DGroup.cs
- X509SecurityTokenAuthenticator.cs
- TemplatedAdorner.cs
- DataTableNewRowEvent.cs
- InternalBase.cs
- ItemsChangedEventArgs.cs
- SqlBuilder.cs
- SecurityElement.cs
- ObjectResult.cs
- FontStyleConverter.cs
- MonitoringDescriptionAttribute.cs
- ThemeableAttribute.cs
- APCustomTypeDescriptor.cs
- DbDataAdapter.cs
- ServiceObjectContainer.cs
- HttpHandlerActionCollection.cs
- ImageClickEventArgs.cs
- DependencyPropertyChangedEventArgs.cs
- WorkflowQueue.cs
- XsdCachingReader.cs
- SharedDp.cs
- XPathDocumentNavigator.cs
- IncrementalReadDecoders.cs
- CompressedStack.cs
- ContentOperations.cs
- SmiMetaData.cs
- ElementAction.cs
- X509SecurityTokenAuthenticator.cs
- HeaderedItemsControl.cs
- SelectionPatternIdentifiers.cs
- MultiView.cs
- PackageStore.cs
- TextTreeRootTextBlock.cs
- SqlStream.cs
- WindowsRichEditRange.cs
- ClockController.cs
- FileUtil.cs
- ComplexBindingPropertiesAttribute.cs
- COM2TypeInfoProcessor.cs
- AsnEncodedData.cs
- BitConverter.cs
- NullableConverter.cs
- SqlDesignerDataSourceView.cs
- SqlDataSourceCommandEventArgs.cs
- RoleServiceManager.cs
- TextWriterTraceListener.cs
- CachingHintValidation.cs
- AttributeConverter.cs
- SettingsSection.cs
- ToolStripOverflow.cs
- WS2007HttpBindingElement.cs
- EventLogPermissionAttribute.cs
- FunctionDefinition.cs
- DesignBinding.cs
- CompilerResults.cs
- ScrollableControl.cs
- LaxModeSecurityHeaderElementInferenceEngine.cs
- Vector3DConverter.cs
- URLAttribute.cs
- FixedHighlight.cs
- TreeNodeCollection.cs
- GroupLabel.cs
- RenderDataDrawingContext.cs
- Quad.cs