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
- recordstatefactory.cs
- smtppermission.cs
- RegexNode.cs
- SqlCacheDependencyDatabaseCollection.cs
- DataTableTypeConverter.cs
- BinaryNode.cs
- TdsParserSessionPool.cs
- SqlUtil.cs
- VerificationAttribute.cs
- SocketPermission.cs
- MethodMessage.cs
- AttachedAnnotation.cs
- CompilerGlobalScopeAttribute.cs
- PageEventArgs.cs
- HttpHandlersSection.cs
- CultureMapper.cs
- SmtpAuthenticationManager.cs
- Crc32.cs
- TypeSource.cs
- TemplatedWizardStep.cs
- isolationinterop.cs
- COM2Enum.cs
- FrameworkContentElement.cs
- TextPointer.cs
- OutputWindow.cs
- ResourceDisplayNameAttribute.cs
- StyleBamlRecordReader.cs
- ByteStorage.cs
- EditorZoneBase.cs
- SingleAnimation.cs
- SettingsAttributes.cs
- ApplicationActivator.cs
- LocalClientSecuritySettingsElement.cs
- CaseStatement.cs
- XNodeNavigator.cs
- OleDbInfoMessageEvent.cs
- ExpandedWrapper.cs
- XmlDeclaration.cs
- XmlKeywords.cs
- ExpressionEditorSheet.cs
- ConstNode.cs
- AnyReturnReader.cs
- HostedNamedPipeTransportManager.cs
- HostVisual.cs
- TraceHandler.cs
- SocketException.cs
- TreeNodeCollection.cs
- AttachmentCollection.cs
- EmptyControlCollection.cs
- Pair.cs
- VirtualizingStackPanel.cs
- QilGeneratorEnv.cs
- XmlFileEditor.cs
- ChineseLunisolarCalendar.cs
- ListViewHitTestInfo.cs
- BevelBitmapEffect.cs
- SymbolUsageManager.cs
- ViewBase.cs
- StandardBindingOptionalReliableSessionElement.cs
- ContentControl.cs
- SQLInt64Storage.cs
- QueryCacheKey.cs
- BasePattern.cs
- IgnorePropertiesAttribute.cs
- CompiledRegexRunnerFactory.cs
- ByteStream.cs
- VersionPair.cs
- COAUTHIDENTITY.cs
- WindowsSecurityTokenAuthenticator.cs
- BamlResourceDeserializer.cs
- MetafileHeader.cs
- MeshGeometry3D.cs
- SuppressMessageAttribute.cs
- ErrorWebPart.cs
- WhitespaceSignificantCollectionAttribute.cs
- DataDocumentXPathNavigator.cs
- arc.cs
- DoubleCollectionConverter.cs
- metadatamappinghashervisitor.cs
- EntryPointNotFoundException.cs
- CharStorage.cs
- SocketPermission.cs
- Renderer.cs
- SignedXmlDebugLog.cs
- ZipPackage.cs
- PointCollection.cs
- SafeHandles.cs
- NegationPusher.cs
- RoleManagerSection.cs
- AccessDataSourceDesigner.cs
- lengthconverter.cs
- GenericIdentity.cs
- QuotedPrintableStream.cs
- UpWmlMobileTextWriter.cs
- X509CertificateTokenFactoryCredential.cs
- SingleAnimation.cs
- CustomDictionarySources.cs
- DataTableMapping.cs
- ParsedAttributeCollection.cs
- HtmlFormAdapter.cs