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
- FlowPanelDesigner.cs
- DataBoundControl.cs
- ItemPager.cs
- PageContentCollection.cs
- DrawingAttributesDefaultValueFactory.cs
- InternalRelationshipCollection.cs
- ConfigXmlComment.cs
- ArraySet.cs
- ObjectDataSourceView.cs
- DataListDesigner.cs
- ReaderWriterLock.cs
- StructuredTypeEmitter.cs
- CodeCatchClause.cs
- IIS7UserPrincipal.cs
- FileDialogPermission.cs
- Error.cs
- FontUnit.cs
- ControlSerializer.cs
- SqlClientMetaDataCollectionNames.cs
- EraserBehavior.cs
- HtmlInputButton.cs
- TrackingProfileDeserializationException.cs
- DrawingCollection.cs
- JsonReaderDelegator.cs
- ObjectViewFactory.cs
- EventBuilder.cs
- NumberSubstitution.cs
- PropertyGeneratedEventArgs.cs
- UmAlQuraCalendar.cs
- ScrollBarAutomationPeer.cs
- MarginCollapsingState.cs
- DesignerRegionCollection.cs
- ResourcesGenerator.cs
- WinInet.cs
- DefaultValueConverter.cs
- FormatConvertedBitmap.cs
- AVElementHelper.cs
- XmlImplementation.cs
- ResourceCategoryAttribute.cs
- Schema.cs
- DataSysAttribute.cs
- BindingGraph.cs
- Stylesheet.cs
- ProviderSettingsCollection.cs
- RecordManager.cs
- HtmlTable.cs
- VirtualPathUtility.cs
- InitiatorSessionSymmetricMessageSecurityProtocol.cs
- CellLabel.cs
- CodeBlockBuilder.cs
- ConfigViewGenerator.cs
- TypeHelpers.cs
- DelayLoadType.cs
- RangeBaseAutomationPeer.cs
- PersonalizationStateInfoCollection.cs
- AnnotationDocumentPaginator.cs
- XDRSchema.cs
- TemporaryBitmapFile.cs
- ObjectItemLoadingSessionData.cs
- XsdDateTime.cs
- EpmSourceTree.cs
- GeneralTransform3DGroup.cs
- ArithmeticException.cs
- AnnotationHighlightLayer.cs
- NopReturnReader.cs
- EnumUnknown.cs
- X500Name.cs
- Label.cs
- DrawListViewSubItemEventArgs.cs
- StickyNote.cs
- StyleTypedPropertyAttribute.cs
- RectangleGeometry.cs
- CopyAction.cs
- ClientSponsor.cs
- SqlTriggerAttribute.cs
- WorkflowRuntimeServiceElement.cs
- ReachDocumentSequenceSerializerAsync.cs
- OutputCacheEntry.cs
- FileRecordSequenceCompletedAsyncResult.cs
- PackageRelationshipCollection.cs
- ColorDialog.cs
- FilterableAttribute.cs
- MulticastIPAddressInformationCollection.cs
- Rijndael.cs
- CustomUserNameSecurityTokenAuthenticator.cs
- Triangle.cs
- WebPartTransformerCollection.cs
- Timer.cs
- _OverlappedAsyncResult.cs
- TreeNodeBindingCollection.cs
- SQLMoney.cs
- SourceSwitch.cs
- ELinqQueryState.cs
- BaseUriHelper.cs
- RightsManagementPermission.cs
- DrawingContext.cs
- Item.cs
- CodeAssignStatement.cs
- TypeReference.cs
- BufferedWebEventProvider.cs