Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TypeConverterAttribute.cs
- TextRunCacheImp.cs
- MetadataArtifactLoaderResource.cs
- DependencyObject.cs
- UrlMappingsModule.cs
- DateTimeSerializationSection.cs
- UnconditionalPolicy.cs
- Formatter.cs
- XmlBindingWorker.cs
- PrePostDescendentsWalker.cs
- ComponentConverter.cs
- SqlProfileProvider.cs
- SnapshotChangeTrackingStrategy.cs
- _emptywebproxy.cs
- IdentityReference.cs
- SqlCommandBuilder.cs
- AxisAngleRotation3D.cs
- MD5Cng.cs
- Merger.cs
- MDIControlStrip.cs
- CompressedStack.cs
- AlphabeticalEnumConverter.cs
- TrustLevelCollection.cs
- RegexBoyerMoore.cs
- Base64Encoder.cs
- SystemWebCachingSectionGroup.cs
- MultiPartWriter.cs
- _AutoWebProxyScriptHelper.cs
- TemplateColumn.cs
- EntityAdapter.cs
- KnownBoxes.cs
- KeyedHashAlgorithm.cs
- Stack.cs
- InlineObject.cs
- sqlmetadatafactory.cs
- PageCodeDomTreeGenerator.cs
- SuppressIldasmAttribute.cs
- EntityDataSourceMemberPath.cs
- PageContentAsyncResult.cs
- BaseEntityWrapper.cs
- ApplicationException.cs
- BackoffTimeoutHelper.cs
- ObjectDataSourceSelectingEventArgs.cs
- XmlParserContext.cs
- SortFieldComparer.cs
- EndPoint.cs
- BinaryObjectInfo.cs
- XamlTemplateSerializer.cs
- TextSelectionHighlightLayer.cs
- BoundPropertyEntry.cs
- HttpCookiesSection.cs
- DefaultPropertyAttribute.cs
- Rotation3DKeyFrameCollection.cs
- DbModificationClause.cs
- DummyDataSource.cs
- UnmanagedBitmapWrapper.cs
- SelectionBorderGlyph.cs
- Constants.cs
- OutOfProcStateClientManager.cs
- ProfileBuildProvider.cs
- HashHelper.cs
- ControlAdapter.cs
- EncodingStreamWrapper.cs
- UserControlParser.cs
- ReadOnlyDataSource.cs
- HierarchicalDataBoundControlAdapter.cs
- HierarchicalDataSourceConverter.cs
- StringConcat.cs
- Tokenizer.cs
- WeakRefEnumerator.cs
- ListView.cs
- KeyValuePairs.cs
- CodePageUtils.cs
- HttpInputStream.cs
- ServiceDesigner.cs
- MessagePartSpecification.cs
- WeakRefEnumerator.cs
- SettingsContext.cs
- EventSetter.cs
- ResourceManager.cs
- ParseElementCollection.cs
- TextEndOfParagraph.cs
- StickyNoteAnnotations.cs
- InfoCardUIAgent.cs
- HwndSource.cs
- DirectoryInfo.cs
- TileBrush.cs
- CodeTypeOfExpression.cs
- FixedSOMTableRow.cs
- EmissiveMaterial.cs
- CommandID.cs
- XmlDocumentSerializer.cs
- BooleanToVisibilityConverter.cs
- QuotedStringFormatReader.cs
- LabelEditEvent.cs
- EventProviderWriter.cs
- TrackingParticipant.cs
- Animatable.cs
- UnionExpr.cs
- EventBookmark.cs