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

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- GridViewColumn.cs
- RuleDefinitions.cs
- ModelEditingScope.cs
- BufferAllocator.cs
- AnimationLayer.cs
- CodeStatementCollection.cs
- ClientSponsor.cs
- CacheEntry.cs
- SqlBulkCopyColumnMapping.cs
- Trace.cs
- BufferedWebEventProvider.cs
- CapacityStreamGeometryContext.cs
- UnmanagedMemoryStreamWrapper.cs
- UpDownEvent.cs
- SQLInt32.cs
- ControlLocalizer.cs
- Types.cs
- Matrix.cs
- IntegerValidatorAttribute.cs
- TreeNode.cs
- FileSystemWatcher.cs
- ClientTargetSection.cs
- MethodRental.cs
- SolidBrush.cs
- XamlLoadErrorInfo.cs
- SafeHandles.cs
- KnownTypes.cs
- CodeMemberMethod.cs
- XPathAxisIterator.cs
- WCFServiceClientProxyGenerator.cs
- XmlSchemaSimpleType.cs
- safePerfProviderHandle.cs
- AdornerDecorator.cs
- SQLMembershipProvider.cs
- EqualityComparer.cs
- DataServiceEntityAttribute.cs
- AssociatedControlConverter.cs
- ConfigurationStrings.cs
- CommonRemoteMemoryBlock.cs
- ThreadSafeList.cs
- AdornerLayer.cs
- ResourceReferenceExpression.cs
- DCSafeHandle.cs
- DoubleAnimationUsingPath.cs
- StrokeNode.cs
- DataBindingCollection.cs
- ToolStripSeparator.cs
- StrokeCollection2.cs
- PanelContainerDesigner.cs
- GetLedgerRequest.cs
- updateconfighost.cs
- WindowsToolbar.cs
- Encoder.cs
- _PooledStream.cs
- Brush.cs
- DictionaryEntry.cs
- TableSectionStyle.cs
- RegexReplacement.cs
- WmlCalendarAdapter.cs
- PropertyGridCommands.cs
- coordinatorfactory.cs
- WebPartEditVerb.cs
- CompositeFontFamily.cs
- GenericPrincipal.cs
- CodeConditionStatement.cs
- TimeIntervalCollection.cs
- AttributeAction.cs
- QilCloneVisitor.cs
- ThicknessConverter.cs
- BuildManager.cs
- TypeExtensions.cs
- DocumentPageHost.cs
- XslException.cs
- TemplateBindingExpression.cs
- GeneralTransform2DTo3D.cs
- TextServicesCompartmentContext.cs
- Match.cs
- Page.cs
- ProgressBar.cs
- FixedStringLookup.cs
- EventNotify.cs
- DrawListViewSubItemEventArgs.cs
- FormsIdentity.cs
- ThreadPool.cs
- ToolStripDropDownClosingEventArgs.cs
- AnimationException.cs
- ExtensibleClassFactory.cs
- DataColumnMapping.cs
- InlineUIContainer.cs
- PrinterResolution.cs
- SynchronousChannelMergeEnumerator.cs
- DataGridCellsPanel.cs
- XmlResolver.cs
- SchemaMapping.cs
- Encoder.cs
- PostBackOptions.cs
- DerivedKeySecurityTokenStub.cs
- MembershipValidatePasswordEventArgs.cs
- DocumentSignatureManager.cs
- BackEase.cs