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
- DbParameterCollectionHelper.cs
- FunctionDescription.cs
- UnsafeNativeMethods.cs
- CompareValidator.cs
- ConsoleKeyInfo.cs
- CollectionsUtil.cs
- SmtpAuthenticationManager.cs
- ImageListStreamer.cs
- TraceSection.cs
- NameNode.cs
- SemaphoreFullException.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- WebPartRestoreVerb.cs
- GridItemCollection.cs
- WS2007FederationHttpBindingElement.cs
- ConfigurationHandlersInstallComponent.cs
- RoleBoolean.cs
- InternalRelationshipCollection.cs
- Hash.cs
- FunctionQuery.cs
- MergeFailedEvent.cs
- DebugView.cs
- DataGridViewCellPaintingEventArgs.cs
- SqlNotificationEventArgs.cs
- AttributeParameterInfo.cs
- StrokeNode.cs
- DataSourceControl.cs
- SafeProcessHandle.cs
- SpecialTypeDataContract.cs
- OLEDB_Util.cs
- ControlBuilder.cs
- EmbeddedMailObjectsCollection.cs
- WorkflowInstanceProvider.cs
- ZipIOExtraFieldElement.cs
- SapiRecoInterop.cs
- CharacterHit.cs
- itemelement.cs
- GeometryModel3D.cs
- Propagator.JoinPropagator.cs
- MetadataPropertyCollection.cs
- SourceFilter.cs
- HwndKeyboardInputProvider.cs
- LeftCellWrapper.cs
- ContentElementAutomationPeer.cs
- DefaultParameterValueAttribute.cs
- PathFigureCollectionConverter.cs
- OpCopier.cs
- ProfileServiceManager.cs
- RegexGroup.cs
- AccessedThroughPropertyAttribute.cs
- AnnouncementSendsAsyncResult.cs
- Invariant.cs
- PolyLineSegment.cs
- XamlVector3DCollectionSerializer.cs
- ExceptionRoutedEventArgs.cs
- ProfileSettings.cs
- ByteStorage.cs
- SimpleApplicationHost.cs
- PerformanceCounterPermissionEntryCollection.cs
- RsaSecurityKey.cs
- DbConnectionPoolCounters.cs
- Win32Exception.cs
- Pair.cs
- TimelineGroup.cs
- GroupBox.cs
- DynamicPropertyHolder.cs
- DynamicFilterExpression.cs
- PropertyOverridesDialog.cs
- XamlTreeBuilderBamlRecordWriter.cs
- GeometryGroup.cs
- Crc32Helper.cs
- PrivateFontCollection.cs
- CodeDefaultValueExpression.cs
- ColumnWidthChangedEvent.cs
- QueueProcessor.cs
- WebPartTransformerAttribute.cs
- QuadraticBezierSegment.cs
- MultiAsyncResult.cs
- HtmlGenericControl.cs
- SystemWebCachingSectionGroup.cs
- PathData.cs
- FixedSOMTableRow.cs
- SchemaNames.cs
- HtmlTextBoxAdapter.cs
- SimpleHandlerFactory.cs
- ConfigurationValidatorAttribute.cs
- SoapAttributeOverrides.cs
- OdbcUtils.cs
- ToolStripPanelDesigner.cs
- TextRangeEditLists.cs
- MetadataProperty.cs
- GenericTypeParameterBuilder.cs
- SecurityDocument.cs
- AnimationTimeline.cs
- Vars.cs
- Drawing.cs
- DetailsViewModeEventArgs.cs
- DatePicker.cs
- ModelPropertyCollectionImpl.cs
- ArraySubsetEnumerator.cs