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
- TableColumnCollection.cs
- SizeAnimationBase.cs
- ListManagerBindingsCollection.cs
- ProfileBuildProvider.cs
- GeneralTransform.cs
- InitializerFacet.cs
- SchemaElementDecl.cs
- RtfControlWordInfo.cs
- RadioButtonRenderer.cs
- GridItemPattern.cs
- MSAAEventDispatcher.cs
- AudioLevelUpdatedEventArgs.cs
- DropDownButton.cs
- ValidationEventArgs.cs
- SqlClientPermission.cs
- SchemaObjectWriter.cs
- tooltip.cs
- UserMapPath.cs
- ConfigurationManagerInternal.cs
- ConfigurationPropertyAttribute.cs
- DefaultTextStore.cs
- Tuple.cs
- PeerPresenceInfo.cs
- DropTarget.cs
- XmlDocument.cs
- ResourcesBuildProvider.cs
- PathData.cs
- CurrentChangingEventArgs.cs
- IconConverter.cs
- MimeTypeAttribute.cs
- CallContext.cs
- BoundField.cs
- DataViewListener.cs
- IndexedEnumerable.cs
- CollectionType.cs
- NonSerializedAttribute.cs
- JournalNavigationScope.cs
- AsyncInvokeOperation.cs
- PublisherIdentityPermission.cs
- DataControlReference.cs
- BindValidationContext.cs
- tibetanshape.cs
- ResXResourceWriter.cs
- assertwrapper.cs
- RectValueSerializer.cs
- StorageBasedPackageProperties.cs
- ExpressionVisitorHelpers.cs
- ItemsControlAutomationPeer.cs
- InputProcessorProfiles.cs
- DataSetViewSchema.cs
- dataobject.cs
- KeyNotFoundException.cs
- UpdatePanel.cs
- ApplicationDirectory.cs
- AssemblyInfo.cs
- XmlCDATASection.cs
- ServiceChannelProxy.cs
- RemotingHelper.cs
- InkPresenter.cs
- Page.cs
- XmlSecureResolver.cs
- WebEventTraceProvider.cs
- StatusBarItemAutomationPeer.cs
- WindowsListView.cs
- GridProviderWrapper.cs
- Thumb.cs
- ActivationArguments.cs
- DataPagerField.cs
- Overlapped.cs
- BindingNavigator.cs
- SoapMessage.cs
- ExpandSegmentCollection.cs
- ModifiableIteratorCollection.cs
- TrustSection.cs
- LayoutManager.cs
- EntityTransaction.cs
- WorkflowMarkupSerializationException.cs
- DecoderFallback.cs
- ContractUtils.cs
- GatewayIPAddressInformationCollection.cs
- ActivityStatusChangeEventArgs.cs
- CodeTypeMemberCollection.cs
- Triplet.cs
- StringAnimationUsingKeyFrames.cs
- ExpandCollapseProviderWrapper.cs
- RuntimeConfigurationRecord.cs
- MetadataItemEmitter.cs
- CreateUserWizardDesigner.cs
- PageScaling.cs
- XamlClipboardData.cs
- TabItem.cs
- URIFormatException.cs
- BitmapEffectInput.cs
- Pair.cs
- InstalledFontCollection.cs
- X509Utils.cs
- WmlTextViewAdapter.cs
- XmlSerializerAssemblyAttribute.cs
- ExtendedPropertiesHandler.cs
- xmlglyphRunInfo.cs