Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / Configuration / HostingPreferredMapPath.cs / 1305376 / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Win32.cs
- DataBinding.cs
- ContainerSelectorActiveEvent.cs
- ChannelProtectionRequirements.cs
- ErrorHandler.cs
- AttachmentService.cs
- Help.cs
- XNameTypeConverter.cs
- SimplePropertyEntry.cs
- ExpandSegment.cs
- XmlSerializerNamespaces.cs
- CustomErrorCollection.cs
- PolicyManager.cs
- PerfCounterSection.cs
- SchemaTableColumn.cs
- UnicastIPAddressInformationCollection.cs
- SourceLineInfo.cs
- DbParameterHelper.cs
- DiscoveryClientReferences.cs
- CollectionViewSource.cs
- _ListenerRequestStream.cs
- WrappedKeySecurityTokenParameters.cs
- SqlDataSourceRefreshSchemaForm.cs
- Listen.cs
- DataGridViewColumnTypePicker.cs
- ChannelSinkStacks.cs
- ResourceExpression.cs
- RequestQueue.cs
- MailBnfHelper.cs
- DesignerDataSourceView.cs
- UInt16Storage.cs
- WorkflowOwnershipException.cs
- GacUtil.cs
- FontUnitConverter.cs
- HMACMD5.cs
- AttributeQuery.cs
- EntryWrittenEventArgs.cs
- VerticalAlignConverter.cs
- DatasetMethodGenerator.cs
- LinkedList.cs
- OciLobLocator.cs
- XmlDictionaryReaderQuotas.cs
- SecurityCriticalDataForSet.cs
- List.cs
- ActivationArguments.cs
- XmlSecureResolver.cs
- ObjectStateManagerMetadata.cs
- SecurityTokenResolver.cs
- RootAction.cs
- BufferedGraphicsManager.cs
- ValidationPropertyAttribute.cs
- StringCollection.cs
- NoResizeSelectionBorderGlyph.cs
- ModifyActivitiesPropertyDescriptor.cs
- NumberFunctions.cs
- EditingCoordinator.cs
- ActivityWithResultWrapper.cs
- validation.cs
- XPathNodeIterator.cs
- LogReserveAndAppendState.cs
- ExeConfigurationFileMap.cs
- AssemblyBuilder.cs
- ListCommandEventArgs.cs
- ItemContainerGenerator.cs
- TcpChannelHelper.cs
- UIElement3D.cs
- InitializationEventAttribute.cs
- ReachSerializationCacheItems.cs
- AdministrationHelpers.cs
- Error.cs
- DependencyObjectProvider.cs
- GenerateTemporaryTargetAssembly.cs
- DataGridViewAccessibleObject.cs
- NamedPipeProcessProtocolHandler.cs
- XmlSchemaInfo.cs
- EntityDataSourceStatementEditorForm.cs
- VirtualDirectoryMappingCollection.cs
- InheritedPropertyDescriptor.cs
- HitTestParameters3D.cs
- EntityDataSourceWrapperPropertyDescriptor.cs
- FlowDocument.cs
- StructuralObject.cs
- StatusBar.cs
- Renderer.cs
- KeyInterop.cs
- DecoratedNameAttribute.cs
- ProfileInfo.cs
- HijriCalendar.cs
- DataGridViewSelectedCellCollection.cs
- Queue.cs
- CodeFieldReferenceExpression.cs
- ImmutableCollection.cs
- UITypeEditors.cs
- SelectionPattern.cs
- RichTextBox.cs
- TrustManager.cs
- InputProviderSite.cs
- ProcessHostServerConfig.cs
- MDIWindowDialog.cs
- StyleCollectionEditor.cs