Code:
/ FX-1434 / FX-1434 / 1.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
- NativeMethods.cs
- PrivateFontCollection.cs
- RTLAwareMessageBox.cs
- SmiSettersStream.cs
- WindowsScrollBar.cs
- SqlNodeAnnotations.cs
- HttpFileCollection.cs
- XmlDownloadManager.cs
- HtmlSelect.cs
- SAPIEngineTypes.cs
- RotationValidation.cs
- LoginStatusDesigner.cs
- DrawingContextDrawingContextWalker.cs
- HttpListenerElement.cs
- ReadContentAsBinaryHelper.cs
- ExpressionPrinter.cs
- StylusCollection.cs
- PlainXmlSerializer.cs
- OutputCacheProfileCollection.cs
- SiteMapNode.cs
- RectIndependentAnimationStorage.cs
- HttpRuntime.cs
- BitmapFrameDecode.cs
- SocketInformation.cs
- DocumentOrderQuery.cs
- KeyGestureValueSerializer.cs
- TextEndOfParagraph.cs
- EntityType.cs
- XPathPatternParser.cs
- FusionWrap.cs
- DXD.cs
- SecurityResources.cs
- COM2IDispatchConverter.cs
- ThreadExceptionDialog.cs
- MetadataItemEmitter.cs
- XPathParser.cs
- ping.cs
- TypeResolver.cs
- ImageListDesigner.cs
- WebSysDisplayNameAttribute.cs
- TreeViewImageKeyConverter.cs
- OdbcEnvironmentHandle.cs
- NamedObject.cs
- MonitoringDescriptionAttribute.cs
- XmlImplementation.cs
- FunctionUpdateCommand.cs
- OracleTimeSpan.cs
- ButtonFlatAdapter.cs
- DefaultTraceListener.cs
- RawAppCommandInputReport.cs
- _TimerThread.cs
- GridViewEditEventArgs.cs
- UnicastIPAddressInformationCollection.cs
- DataViewListener.cs
- IncrementalReadDecoders.cs
- LogConverter.cs
- AuthenticationException.cs
- StructuredTypeEmitter.cs
- XmlBaseReader.cs
- GlobalAclOperationRequirement.cs
- TreeBuilder.cs
- Drawing.cs
- TreeNodeStyle.cs
- DBCSCodePageEncoding.cs
- PathSegmentCollection.cs
- RecognitionResult.cs
- TagNameToTypeMapper.cs
- SafeSystemMetrics.cs
- SinglePageViewer.cs
- NegotiateStream.cs
- SharedPerformanceCounter.cs
- PartialList.cs
- SchemaImporterExtensionsSection.cs
- _ChunkParse.cs
- DataGridViewToolTip.cs
- IntranetCredentialPolicy.cs
- XamlStyleSerializer.cs
- ResourcePool.cs
- MethodCallTranslator.cs
- OperatingSystemVersionCheck.cs
- JoinSymbol.cs
- PersistenceTask.cs
- ToolStripRenderEventArgs.cs
- OrderPreservingPipeliningSpoolingTask.cs
- SQLBytes.cs
- GridViewCancelEditEventArgs.cs
- XPathEmptyIterator.cs
- FusionWrap.cs
- WebDescriptionAttribute.cs
- MetaTable.cs
- DragDeltaEventArgs.cs
- DesignSurfaceServiceContainer.cs
- InProcStateClientManager.cs
- Win32SafeHandles.cs
- CodeConditionStatement.cs
- SqlUDTStorage.cs
- ParsedAttributeCollection.cs
- PageOutputColor.cs
- BinaryConverter.cs
- SourceFileBuildProvider.cs