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
- XamlTemplateSerializer.cs
- SequenceDesignerAccessibleObject.cs
- RangeValueProviderWrapper.cs
- SettingsPropertyIsReadOnlyException.cs
- RoutedPropertyChangedEventArgs.cs
- ObjectDataSourceView.cs
- ObjectComplexPropertyMapping.cs
- Point4D.cs
- ISAPIWorkerRequest.cs
- XmlStreamNodeWriter.cs
- UnsafeNativeMethods.cs
- RenderOptions.cs
- ScaleTransform3D.cs
- FormatSettings.cs
- ServiceDiscoveryBehavior.cs
- CapabilitiesUse.cs
- TemplateBindingExpressionConverter.cs
- UInt64.cs
- BitmapEffectInputData.cs
- BaseCollection.cs
- WebPartUserCapability.cs
- KeyPullup.cs
- XmlIterators.cs
- StructuredType.cs
- TreePrinter.cs
- Columns.cs
- DecoderNLS.cs
- UIElementCollection.cs
- EnvironmentPermission.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- TemplateComponentConnector.cs
- ContentPropertyAttribute.cs
- HashAlgorithm.cs
- DataGridViewColumnEventArgs.cs
- PresentationTraceSources.cs
- Listbox.cs
- Keywords.cs
- ObjectReaderCompiler.cs
- DataServiceHost.cs
- XmlAttributeCache.cs
- URIFormatException.cs
- Perspective.cs
- SQLInt32.cs
- DelegateArgument.cs
- XmlObjectSerializerWriteContext.cs
- XmlAnyElementAttributes.cs
- SessionEndingCancelEventArgs.cs
- RangeContentEnumerator.cs
- DbConnectionPool.cs
- UdpDiscoveryEndpointProvider.cs
- ObjectSet.cs
- FieldMetadata.cs
- Compilation.cs
- TableChangeProcessor.cs
- ExecutionProperties.cs
- JsonCollectionDataContract.cs
- TypeInfo.cs
- ServiceModelSectionGroup.cs
- EntryPointNotFoundException.cs
- ApplicationServiceHelper.cs
- Object.cs
- ToolStripItemCollection.cs
- DataTablePropertyDescriptor.cs
- CodeDelegateInvokeExpression.cs
- ValidationRuleCollection.cs
- Vector3DCollectionValueSerializer.cs
- Context.cs
- ObjectFullSpanRewriter.cs
- KeyProperty.cs
- VirtualizedContainerService.cs
- ValueExpressions.cs
- AsyncOperationManager.cs
- _ConnectStream.cs
- SplayTreeNode.cs
- WindowsAuthenticationEventArgs.cs
- ContextQuery.cs
- DynamicPropertyReader.cs
- OleDbEnumerator.cs
- AutoGeneratedFieldProperties.cs
- ForceCopyBuildProvider.cs
- EnumerableRowCollection.cs
- OpCodes.cs
- EnglishPluralizationService.cs
- FixedSOMImage.cs
- EmptyControlCollection.cs
- XPathBinder.cs
- SimpleWebHandlerParser.cs
- SafeSecurityHelper.cs
- ReflectionPermission.cs
- PolicyStatement.cs
- DataControlFieldHeaderCell.cs
- UnicastIPAddressInformationCollection.cs
- OrderedParallelQuery.cs
- PackageStore.cs
- KnownTypes.cs
- IsolatedStorageException.cs
- XsltSettings.cs
- CompositeDuplexElement.cs
- ModelVisual3D.cs
- ClientApiGenerator.cs