Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / xsp / System / Web / Configuration / HostingPreferredMapPath.cs / 4 / 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. // //----------------------------------------------------------------------------- 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TreeIterator.cs
- KeyPressEvent.cs
- CollectionChangeEventArgs.cs
- RowsCopiedEventArgs.cs
- ReadWriteObjectLock.cs
- HtmlEmptyTagControlBuilder.cs
- WindowsHyperlink.cs
- InstanceDescriptor.cs
- HttpListenerRequest.cs
- SmtpReplyReaderFactory.cs
- WebPartAuthorizationEventArgs.cs
- FixedNode.cs
- InputQueueChannelAcceptor.cs
- SchemaContext.cs
- GridViewDeleteEventArgs.cs
- TraceListener.cs
- DataServiceResponse.cs
- BuiltInExpr.cs
- CommonObjectSecurity.cs
- CodeMemberEvent.cs
- ApplicationSecurityInfo.cs
- DataBinder.cs
- ScrollItemPattern.cs
- Triangle.cs
- CompiledAction.cs
- GridViewPageEventArgs.cs
- RegexMatchCollection.cs
- SocketConnection.cs
- LocalClientSecuritySettings.cs
- KnownColorTable.cs
- ArgIterator.cs
- SpellerHighlightLayer.cs
- RubberbandSelector.cs
- CTreeGenerator.cs
- NullableFloatAverageAggregationOperator.cs
- DocumentAutomationPeer.cs
- StylusDevice.cs
- RoleServiceManager.cs
- XmlJsonWriter.cs
- UserNameSecurityTokenProvider.cs
- CodeBinaryOperatorExpression.cs
- RelationshipFixer.cs
- DllNotFoundException.cs
- GridEntryCollection.cs
- CellCreator.cs
- WebPartUtil.cs
- PropertyCollection.cs
- ExcCanonicalXml.cs
- CompatibleIComparer.cs
- CodeGotoStatement.cs
- MetadataCacheItem.cs
- HtmlTableCellCollection.cs
- HebrewNumber.cs
- XmlReaderSettings.cs
- BitmapImage.cs
- FixedBufferAttribute.cs
- UntrustedRecipientException.cs
- IODescriptionAttribute.cs
- WindowVisualStateTracker.cs
- ValidatedMobileControlConverter.cs
- CommandField.cs
- FloaterBaseParaClient.cs
- Label.cs
- ConfigXmlAttribute.cs
- DependencyObjectCodeDomSerializer.cs
- ToolStripDesigner.cs
- Transactions.cs
- WpfMemberInvoker.cs
- DataGridPreparingCellForEditEventArgs.cs
- FreezableOperations.cs
- PropertyDescriptorGridEntry.cs
- LineBreakRecord.cs
- Delay.cs
- ModuleBuilderData.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- JsonWriter.cs
- FakeModelPropertyImpl.cs
- PageRouteHandler.cs
- Visitors.cs
- DynamicField.cs
- PropertyItem.cs
- MessageHeaderDescriptionCollection.cs
- DefaultSettingsSection.cs
- HttpModuleAction.cs
- DBNull.cs
- SHA512Managed.cs
- _KerberosClient.cs
- TimerElapsedEvenArgs.cs
- TrustManagerMoreInformation.cs
- HttpPostedFileWrapper.cs
- PreservationFileReader.cs
- Pen.cs
- RemotingSurrogateSelector.cs
- SrgsText.cs
- Group.cs
- WSMessageEncoding.cs
- DefaultPrintController.cs
- RoutingUtilities.cs
- AnnotationResourceChangedEventArgs.cs
- SQLUtility.cs