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
- ClientTargetCollection.cs
- NamespaceTable.cs
- SafeFileMappingHandle.cs
- StreamWriter.cs
- CharAnimationBase.cs
- RemotingConfiguration.cs
- SharedUtils.cs
- HttpDigestClientCredential.cs
- FileDialog.cs
- BoundPropertyEntry.cs
- ZipIOExtraField.cs
- PassportPrincipal.cs
- EntityContainerRelationshipSetEnd.cs
- LexicalChunk.cs
- IxmlLineInfo.cs
- SymbolEqualComparer.cs
- EpmContentSerializerBase.cs
- ToolStripDropDownButton.cs
- BufferedOutputStream.cs
- ConnectionOrientedTransportElement.cs
- OracleRowUpdatingEventArgs.cs
- TemplateControlCodeDomTreeGenerator.cs
- SmiEventSink.cs
- Command.cs
- ParentUndoUnit.cs
- Relationship.cs
- MemoryRecordBuffer.cs
- LinkUtilities.cs
- OuterProxyWrapper.cs
- ZipIOCentralDirectoryBlock.cs
- MessagingActivityHelper.cs
- EncryptedPackage.cs
- Animatable.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- CacheChildrenQuery.cs
- CheckBox.cs
- PeerNameRecord.cs
- DictationGrammar.cs
- AttachedPropertyBrowsableForChildrenAttribute.cs
- XmlIlGenerator.cs
- ADMembershipProvider.cs
- SequenceDesigner.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- TrustManager.cs
- ErrorHandler.cs
- HijriCalendar.cs
- UnorderedHashRepartitionStream.cs
- XmlReflectionImporter.cs
- CheckPair.cs
- RegexCompilationInfo.cs
- Path.cs
- DbUpdateCommandTree.cs
- InternalEnumValidatorAttribute.cs
- Stopwatch.cs
- ServicePoint.cs
- PathFigure.cs
- DataServiceResponse.cs
- XamlDebuggerXmlReader.cs
- SignedPkcs7.cs
- EventRecordWrittenEventArgs.cs
- Size3D.cs
- ConsumerConnectionPointCollection.cs
- XmlBaseReader.cs
- InvalidCastException.cs
- SerializationInfo.cs
- WebPartZoneBase.cs
- ListBoxChrome.cs
- BmpBitmapEncoder.cs
- VisualTreeUtils.cs
- SerializationObjectManager.cs
- WebServiceEnumData.cs
- RawAppCommandInputReport.cs
- InvokePattern.cs
- TimersDescriptionAttribute.cs
- DataObjectAttribute.cs
- CacheOutputQuery.cs
- ScrollProviderWrapper.cs
- Type.cs
- CellPartitioner.cs
- SelectionRange.cs
- XhtmlConformanceSection.cs
- HttpCachePolicy.cs
- SmtpNegotiateAuthenticationModule.cs
- UnsafeNativeMethods.cs
- BooleanSwitch.cs
- keycontainerpermission.cs
- ProfileSettingsCollection.cs
- ToolZoneDesigner.cs
- UnsafeNativeMethods.cs
- CharacterBuffer.cs
- Constants.cs
- TreeView.cs
- XDeferredAxisSource.cs
- DiscreteKeyFrames.cs
- View.cs
- SmtpFailedRecipientsException.cs
- EditorResources.cs
- MenuEventArgs.cs
- MaskDescriptor.cs
- TraceData.cs