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
- BinaryFormatterWriter.cs
- ObjectDataSourceWizardForm.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- GridViewRowEventArgs.cs
- DirectoryInfo.cs
- FileDataSourceCache.cs
- ListSortDescription.cs
- Point3DConverter.cs
- Parameter.cs
- QuaternionValueSerializer.cs
- ClientRolePrincipal.cs
- IconConverter.cs
- WindowsFormsDesignerOptionService.cs
- PreProcessor.cs
- DiscoveryViaBehavior.cs
- MouseDevice.cs
- InputLanguage.cs
- HScrollBar.cs
- DefaultClaimSet.cs
- GridItem.cs
- Stackframe.cs
- UpDownBase.cs
- NativeMethods.cs
- ScriptControl.cs
- MouseEventArgs.cs
- BuilderElements.cs
- WhitespaceRuleLookup.cs
- CopyCodeAction.cs
- ClientSponsor.cs
- OracleBoolean.cs
- TabControl.cs
- ImmutableObjectAttribute.cs
- LayoutTable.cs
- InputScope.cs
- XPathNavigator.cs
- Separator.cs
- ObfuscateAssemblyAttribute.cs
- PreviewPageInfo.cs
- DataGridViewCellStyle.cs
- PersianCalendar.cs
- TableLayoutRowStyleCollection.cs
- UriSectionData.cs
- PackageDigitalSignatureManager.cs
- DbConnectionOptions.cs
- PriorityBinding.cs
- EventSetterHandlerConverter.cs
- GridViewUpdatedEventArgs.cs
- EventSourceCreationData.cs
- NgenServicingAttributes.cs
- GeneralTransformCollection.cs
- arabicshape.cs
- LayoutManager.cs
- RawTextInputReport.cs
- TaskFileService.cs
- MsmqIntegrationBinding.cs
- _NTAuthentication.cs
- SecurityCookieModeValidator.cs
- TogglePattern.cs
- TreeView.cs
- CapabilitiesAssignment.cs
- EdmScalarPropertyAttribute.cs
- ListControlBoundActionList.cs
- SiteMapNodeCollection.cs
- PageBreakRecord.cs
- XmlSchemaDocumentation.cs
- UInt16.cs
- DataGridViewCellEventArgs.cs
- CodeParameterDeclarationExpressionCollection.cs
- WebPageTraceListener.cs
- Message.cs
- _SslSessionsCache.cs
- FillRuleValidation.cs
- RecognizedWordUnit.cs
- PixelFormat.cs
- CacheHelper.cs
- UnsafePeerToPeerMethods.cs
- EventProperty.cs
- RemoteWebConfigurationHostStream.cs
- RefreshEventArgs.cs
- PolygonHotSpot.cs
- WebBrowserPermission.cs
- HtmlTableRow.cs
- TextPointer.cs
- AttributeEmitter.cs
- ProgressBarAutomationPeer.cs
- ScrollItemPattern.cs
- HostedAspNetEnvironment.cs
- EntryPointNotFoundException.cs
- AssemblyResolver.cs
- DynamicMethod.cs
- Point3DKeyFrameCollection.cs
- ToolTipService.cs
- ColorDialog.cs
- ReferenceService.cs
- ResourceReferenceExpression.cs
- MatrixCamera.cs
- WebServiceMethodData.cs
- XmlIncludeAttribute.cs
- RuntimeConfig.cs
- ItemCheckedEvent.cs