Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / DEVDIV / depot / DevDiv / releases / whidbey / QFE / ndp / fx / src / xsp / System / Web / Configuration / HostingPreferredMapPath.cs / 2 / 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. //------------------------------------------------------------------------------ //// 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DesignerActionUI.cs
- ParamArrayAttribute.cs
- ContentDefinition.cs
- OperationResponse.cs
- DrawTreeNodeEventArgs.cs
- TextSelectionHelper.cs
- PersianCalendar.cs
- FontStretch.cs
- IPHostEntry.cs
- RoutingChannelExtension.cs
- ForceCopyBuildProvider.cs
- BitConverter.cs
- FaultDesigner.cs
- Root.cs
- BitmapFrame.cs
- NestedContainer.cs
- Margins.cs
- ArrayTypeMismatchException.cs
- DesignTimeTemplateParser.cs
- DocumentViewerAutomationPeer.cs
- ModifiableIteratorCollection.cs
- TextTreeTextNode.cs
- BitmapFrameDecode.cs
- ThreadExceptionDialog.cs
- CompositeClientFormatter.cs
- brushes.cs
- DataListCommandEventArgs.cs
- ObjectDisposedException.cs
- MenuItemAutomationPeer.cs
- ScalarConstant.cs
- IncrementalHitTester.cs
- Style.cs
- StaticResourceExtension.cs
- TagPrefixInfo.cs
- ASCIIEncoding.cs
- SectionInput.cs
- SymmetricSecurityBindingElement.cs
- DbCommandTree.cs
- BooleanFunctions.cs
- EndpointInfo.cs
- UpnEndpointIdentity.cs
- SwitchElementsCollection.cs
- KernelTypeValidation.cs
- Image.cs
- Vector3DCollectionConverter.cs
- OracleRowUpdatingEventArgs.cs
- OptionalMessageQuery.cs
- PrimitiveXmlSerializers.cs
- CommentEmitter.cs
- NTAccount.cs
- UiaCoreApi.cs
- ServiceChannelManager.cs
- AvTrace.cs
- SchemaTableOptionalColumn.cs
- LexicalChunk.cs
- _SSPISessionCache.cs
- ViewKeyConstraint.cs
- SqlServer2KCompatibilityAnnotation.cs
- Renderer.cs
- ScriptRegistrationManager.cs
- DecodeHelper.cs
- AstNode.cs
- KeyTimeConverter.cs
- TemplateNameScope.cs
- XmlSchemaSimpleContentExtension.cs
- AvTraceDetails.cs
- DelegateHelpers.cs
- DecimalAnimationUsingKeyFrames.cs
- CompilerState.cs
- SelectorAutomationPeer.cs
- Environment.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- HandlerMappingMemo.cs
- XmlNode.cs
- ObjectDataSourceFilteringEventArgs.cs
- BeginStoryboard.cs
- SystemTcpStatistics.cs
- RegexGroup.cs
- ColorPalette.cs
- XmlNamespaceMappingCollection.cs
- HttpRequest.cs
- DbExpressionVisitor.cs
- InvokeMethod.cs
- RegexCompiler.cs
- GroupByExpressionRewriter.cs
- SelectedDatesCollection.cs
- CachedResourceDictionaryExtension.cs
- CheckBox.cs
- PrintDialog.cs
- ButtonChrome.cs
- BeginEvent.cs
- Point4DConverter.cs
- BindingExpression.cs
- SmtpException.cs
- RequestCacheValidator.cs
- SHA512Managed.cs
- ConditionedDesigner.cs
- ResourceSetExpression.cs
- FormatterServicesNoSerializableCheck.cs
- DataSet.cs