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
- SequenceRange.cs
- ExpressionBuilder.cs
- TemplateKeyConverter.cs
- InvalidOleVariantTypeException.cs
- PropertyGridEditorPart.cs
- Attachment.cs
- BrowserCapabilitiesFactoryBase.cs
- MruCache.cs
- EntityAdapter.cs
- ContextMarshalException.cs
- Misc.cs
- TableStyle.cs
- Panel.cs
- CatchDesigner.xaml.cs
- GrammarBuilderDictation.cs
- ApplySecurityAndSendAsyncResult.cs
- ParameterRefs.cs
- SqlErrorCollection.cs
- HostElement.cs
- WorkflowApplicationAbortedEventArgs.cs
- PeerCollaboration.cs
- CounterSample.cs
- EraserBehavior.cs
- SessionSwitchEventArgs.cs
- XmlSchemaInfo.cs
- GC.cs
- LinearGradientBrush.cs
- PatternMatcher.cs
- UserNamePasswordValidator.cs
- DocumentAutomationPeer.cs
- SmiMetaData.cs
- ButtonStandardAdapter.cs
- xsdvalidator.cs
- GridView.cs
- BulletedListEventArgs.cs
- GeneralTransform3D.cs
- RelationalExpressions.cs
- PropertyMapper.cs
- ExpressionCopier.cs
- DocumentViewerHelper.cs
- CharacterBuffer.cs
- Win32.cs
- CounterSample.cs
- BlockUIContainer.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- InstanceDescriptor.cs
- StringCollection.cs
- DeviceContext.cs
- LinearKeyFrames.cs
- DependencyObject.cs
- ProcessHostServerConfig.cs
- SessionPageStateSection.cs
- ConfigXmlCDataSection.cs
- AppAction.cs
- PropertyGroupDescription.cs
- UriParserTemplates.cs
- Util.cs
- ListBindingConverter.cs
- OracleEncoding.cs
- SqlTransaction.cs
- SdlChannelSink.cs
- SecurityElementBase.cs
- QuestionEventArgs.cs
- ChannelManager.cs
- NullableDecimalAverageAggregationOperator.cs
- TreeNodeSelectionProcessor.cs
- TextEmbeddedObject.cs
- DesignerCalendarAdapter.cs
- FocusManager.cs
- HttpInputStream.cs
- UIntPtr.cs
- VirtualPathUtility.cs
- DataSourceControlBuilder.cs
- InputProcessorProfilesLoader.cs
- MaterializeFromAtom.cs
- TypeForwardedFromAttribute.cs
- SR.cs
- FileDialogPermission.cs
- WebSysDisplayNameAttribute.cs
- OutputCacheProfile.cs
- PowerStatus.cs
- SafeTimerHandle.cs
- TypeAccessException.cs
- AssemblyCollection.cs
- MimeMultiPart.cs
- XPathAncestorIterator.cs
- ContextMenu.cs
- CodeTypeMemberCollection.cs
- BatchParser.cs
- SendSecurityHeader.cs
- TableRowGroup.cs
- UserValidatedEventArgs.cs
- LoginViewDesigner.cs
- TextTreeInsertUndoUnit.cs
- ToolStripSplitStackLayout.cs
- TransformedBitmap.cs
- SqlParameter.cs
- SystemException.cs
- ConditionalDesigner.cs
- FilteredAttributeCollection.cs