Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / 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; } } }
Link Menu
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Cursor.cs
- VirtualPath.cs
- KeyManager.cs
- PermissionSetEnumerator.cs
- DocumentsTrace.cs
- TogglePattern.cs
- COM2IProvidePropertyBuilderHandler.cs
- DefaultExpressionVisitor.cs
- CacheMemory.cs
- RayHitTestParameters.cs
- HandlerFactoryCache.cs
- NumberSubstitution.cs
- ObjectManager.cs
- RouteParameter.cs
- DTCTransactionManager.cs
- RectAnimationBase.cs
- EdmFunction.cs
- PropertyGrid.cs
- MultiView.cs
- ServicePoint.cs
- RuntimeIdentifierPropertyAttribute.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- Dictionary.cs
- UnsafeNativeMethodsMilCoreApi.cs
- ObjectListCommandEventArgs.cs
- GroupItemAutomationPeer.cs
- UIAgentAsyncParams.cs
- DeclaredTypeElementCollection.cs
- CellParagraph.cs
- AutoScrollExpandMessageFilter.cs
- HttpRuntimeSection.cs
- FileClassifier.cs
- HttpProcessUtility.cs
- RunClient.cs
- DbConnectionPool.cs
- CodeTypeReferenceCollection.cs
- DocumentPageTextView.cs
- MessageLoggingElement.cs
- DockAndAnchorLayout.cs
- SizeLimitedCache.cs
- ValidatedControlConverter.cs
- URIFormatException.cs
- NextPreviousPagerField.cs
- PropertiesTab.cs
- ConcurrencyBehavior.cs
- DateTimeParse.cs
- DbParameterHelper.cs
- TraceLevelStore.cs
- StringDictionary.cs
- DocumentViewerBase.cs
- SqlDataSourceCommandEventArgs.cs
- TextSpan.cs
- XmlElementList.cs
- MaterialGroup.cs
- RegisteredArrayDeclaration.cs
- RoleProviderPrincipal.cs
- PropertyGeneratedEventArgs.cs
- ResourcePart.cs
- DocumentOrderQuery.cs
- SqlDataSourceView.cs
- HighlightVisual.cs
- MemoryMappedFileSecurity.cs
- TreeViewCancelEvent.cs
- CorrelationQueryBehavior.cs
- ToolStripPanelRenderEventArgs.cs
- SecureEnvironment.cs
- IntegerValidatorAttribute.cs
- XmlSchemaResource.cs
- RecognizerBase.cs
- KeyTime.cs
- PipelineModuleStepContainer.cs
- GenericEnumConverter.cs
- Atom10FeedFormatter.cs
- TcpProcessProtocolHandler.cs
- BezierSegment.cs
- UIElementParaClient.cs
- ClientScriptManagerWrapper.cs
- ListBindingHelper.cs
- ContainsRowNumberChecker.cs
- PrivilegedConfigurationManager.cs
- ResourceBinder.cs
- _RequestLifetimeSetter.cs
- BooleanFacetDescriptionElement.cs
- PointLightBase.cs
- ValueTable.cs
- TemplateBindingExtension.cs
- WindowAutomationPeer.cs
- HttpPostedFile.cs
- FontCacheUtil.cs
- GridItemPattern.cs
- SpecialFolderEnumConverter.cs
- SettingsPropertyWrongTypeException.cs
- TableDetailsCollection.cs
- TreeViewImageKeyConverter.cs
- SortedSet.cs
- TextEditorTyping.cs
- List.cs
- exports.cs
- WebPartConnectionsCancelVerb.cs
- SimpleHandlerBuildProvider.cs