Code:
/ FX-1434 / FX-1434 / 1.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
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- WithParamAction.cs
- ListControlDesigner.cs
- WebPartMovingEventArgs.cs
- TypedDataSetSchemaImporterExtensionFx35.cs
- CoreSwitches.cs
- EntityConnection.cs
- MinMaxParagraphWidth.cs
- MultiView.cs
- ProcessingInstructionAction.cs
- ReachPageContentCollectionSerializerAsync.cs
- Vector3D.cs
- SqlExpressionNullability.cs
- ScriptResourceHandler.cs
- DocumentPageViewAutomationPeer.cs
- UserControlParser.cs
- ComplexTypeEmitter.cs
- LinqToSqlWrapper.cs
- IteratorDescriptor.cs
- DataGridViewCellStateChangedEventArgs.cs
- TabItem.cs
- BorderGapMaskConverter.cs
- OdbcConnectionPoolProviderInfo.cs
- MailAddress.cs
- DocumentPageViewAutomationPeer.cs
- FormClosingEvent.cs
- CodeTypeMember.cs
- SocketException.cs
- DocumentOrderQuery.cs
- reliableinputsessionchannel.cs
- Simplifier.cs
- ShadowGlyph.cs
- QilSortKey.cs
- SiteMapNodeCollection.cs
- AuthenticationSection.cs
- HeaderPanel.cs
- FixedSOMContainer.cs
- WebSysDescriptionAttribute.cs
- EntityCommandCompilationException.cs
- SymmetricSecurityProtocolFactory.cs
- TerminateSequenceResponse.cs
- RMEnrollmentPage1.cs
- ConfigurationElementCollection.cs
- MenuItemStyleCollection.cs
- Timeline.cs
- SynchronizedDispatch.cs
- QueryOptionExpression.cs
- MDIWindowDialog.cs
- RadioButtonList.cs
- DataSourceCache.cs
- ArrangedElementCollection.cs
- SimpleExpression.cs
- DynamicDataResources.Designer.cs
- IntSumAggregationOperator.cs
- DbParameterCollection.cs
- UriTemplateDispatchFormatter.cs
- EditorAttribute.cs
- ObjectDataSourceFilteringEventArgs.cs
- PictureBox.cs
- OptimizerPatterns.cs
- LinqDataSourceInsertEventArgs.cs
- ReliabilityContractAttribute.cs
- SqlPersistenceWorkflowInstanceDescription.cs
- ApplicationServiceManager.cs
- DispatcherObject.cs
- ConstNode.cs
- METAHEADER.cs
- WebPartMenuStyle.cs
- InteropBitmapSource.cs
- InvalidAsynchronousStateException.cs
- FileSystemWatcher.cs
- NamespaceEmitter.cs
- ClientRoleProvider.cs
- ConfigurationManagerInternal.cs
- XmlUtil.cs
- BounceEase.cs
- PageCache.cs
- ActiveDesignSurfaceEvent.cs
- ParameterBuilder.cs
- SessionParameter.cs
- CodeSnippetStatement.cs
- SmiContext.cs
- NativeBuffer.cs
- TypeNameConverter.cs
- LoadItemsEventArgs.cs
- ExpressionBuilderCollection.cs
- ItemType.cs
- ResourcesGenerator.cs
- BCLDebug.cs
- securestring.cs
- OracleMonthSpan.cs
- InitializingNewItemEventArgs.cs
- NegotiationTokenAuthenticator.cs
- XmlWrappingReader.cs
- ApplicationServicesHostFactory.cs
- FontStretches.cs
- TemplateControlParser.cs
- GridPattern.cs
- PointKeyFrameCollection.cs
- DataServiceRequestException.cs
- NavigationProperty.cs