Code:
/ 4.0 / 4.0 / 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. //------------------------------------------------------------------------------ //// 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
- HttpWebRequestElement.cs
- SimpleHandlerFactory.cs
- DependencySource.cs
- CacheSection.cs
- IteratorDescriptor.cs
- UICuesEvent.cs
- StyleTypedPropertyAttribute.cs
- SoapFormatExtensions.cs
- WebServiceClientProxyGenerator.cs
- Rotation3DAnimation.cs
- TreeSet.cs
- SafeSecurityHandles.cs
- DependencyProperty.cs
- ActivityCodeDomSerializationManager.cs
- FigureParaClient.cs
- HandledEventArgs.cs
- SoapHeader.cs
- ToolStripControlHost.cs
- UIElement3D.cs
- ContractSearchPattern.cs
- Soap12ProtocolReflector.cs
- ListCollectionView.cs
- HelloOperation11AsyncResult.cs
- StrongNameIdentityPermission.cs
- DescendentsWalker.cs
- Expander.cs
- SqlTopReducer.cs
- ProgressBar.cs
- TypeSemantics.cs
- DefaultAsyncDataDispatcher.cs
- TextAdaptor.cs
- BufferedOutputStream.cs
- FloaterParagraph.cs
- UnsafeNativeMethods.cs
- FillErrorEventArgs.cs
- ControlPropertyNameConverter.cs
- SqlBuilder.cs
- FileUtil.cs
- Completion.cs
- Rfc2898DeriveBytes.cs
- CssTextWriter.cs
- DoWhileDesigner.xaml.cs
- DeriveBytes.cs
- PageSettings.cs
- InternalTypeHelper.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- AnnotationMap.cs
- TextDecorationUnitValidation.cs
- BinHexDecoder.cs
- ResourceContainer.cs
- SettingsPropertyValue.cs
- AppliedDeviceFiltersDialog.cs
- EtwTrackingBehaviorElement.cs
- DelegatingTypeDescriptionProvider.cs
- SecurityUtils.cs
- PropertyGridView.cs
- Double.cs
- Canvas.cs
- TypeDelegator.cs
- DSASignatureFormatter.cs
- validation.cs
- TokenizerHelper.cs
- SchemaHelper.cs
- SqlException.cs
- DoubleLink.cs
- TableRowGroup.cs
- ViewKeyConstraint.cs
- WebPartZoneBase.cs
- RestHandlerFactory.cs
- BitmapEffectCollection.cs
- IIS7WorkerRequest.cs
- MeshGeometry3D.cs
- X509Certificate.cs
- QuaternionAnimationBase.cs
- SHA1Managed.cs
- TextServicesCompartmentEventSink.cs
- WinCategoryAttribute.cs
- HttpAsyncResult.cs
- SuppressMessageAttribute.cs
- HierarchicalDataSourceControl.cs
- XmlPreloadedResolver.cs
- NativeBuffer.cs
- ObjectManager.cs
- BuildProvidersCompiler.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- SmiTypedGetterSetter.cs
- LogReservationCollection.cs
- WriteStateInfoBase.cs
- SqlNotificationRequest.cs
- XmlSchemaType.cs
- DataGridViewHitTestInfo.cs
- EqualityArray.cs
- ExtensionFile.cs
- HtmlShimManager.cs
- sitestring.cs
- PartBasedPackageProperties.cs
- TextEditorParagraphs.cs
- PlainXmlSerializer.cs
- TargetInvocationException.cs
- ProtocolsSection.cs