Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / DEVDIV / depot / DevDiv / releases / 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.
//------------------------------------------------------------------------------
//
// 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
- Cursors.cs
- Attributes.cs
- ExpressionPrefixAttribute.cs
- ReferencedCollectionType.cs
- ToolBarPanel.cs
- AnimationLayer.cs
- WindowsProgressbar.cs
- HostExecutionContextManager.cs
- ScriptIgnoreAttribute.cs
- XmlSchemaComplexContent.cs
- TableCellCollection.cs
- EntityClassGenerator.cs
- Currency.cs
- RenderDataDrawingContext.cs
- ClaimComparer.cs
- KeyProperty.cs
- Axis.cs
- XmlSchemaIdentityConstraint.cs
- DetailsViewInsertEventArgs.cs
- GiveFeedbackEvent.cs
- ScriptResourceAttribute.cs
- CapabilitiesAssignment.cs
- ObservableCollection.cs
- Latin1Encoding.cs
- FontStyleConverter.cs
- TypeDescriptorContext.cs
- SqlDataSourceCache.cs
- ScrollPattern.cs
- ValidatedMobileControlConverter.cs
- SourceChangedEventArgs.cs
- SettingsAttributes.cs
- CacheVirtualItemsEvent.cs
- StringToken.cs
- NetworkInformationException.cs
- RegexFCD.cs
- InkSerializer.cs
- AuthenticationSection.cs
- XmlReturnReader.cs
- SocketCache.cs
- RemotingServices.cs
- LineUtil.cs
- CacheOutputQuery.cs
- Viewport3DVisual.cs
- RichTextBoxConstants.cs
- CounterCreationData.cs
- CertificateManager.cs
- Visual3D.cs
- XmlUtilWriter.cs
- BuildDependencySet.cs
- WebPartHelpVerb.cs
- TableDetailsCollection.cs
- SystemThemeKey.cs
- TextTrailingCharacterEllipsis.cs
- BaseCAMarshaler.cs
- DesignerObject.cs
- ContentElementAutomationPeer.cs
- TextSpanModifier.cs
- figurelengthconverter.cs
- WindowsPen.cs
- FilterElement.cs
- IBuiltInEvidence.cs
- RecognizedAudio.cs
- CompareValidator.cs
- UIElement.cs
- UdpDiscoveryEndpoint.cs
- UniqueID.cs
- ValidationEventArgs.cs
- VersionedStreamOwner.cs
- MimeTypeAttribute.cs
- String.cs
- SystemPens.cs
- HttpResponseInternalWrapper.cs
- ExpandSegmentCollection.cs
- CredentialCache.cs
- Oid.cs
- SelectionManager.cs
- XmlSerializerVersionAttribute.cs
- SchemaTypeEmitter.cs
- CultureInfoConverter.cs
- XmlWhitespace.cs
- ManifestResourceInfo.cs
- StringBlob.cs
- MenuScrollingVisibilityConverter.cs
- PointConverter.cs
- GeneralTransform3D.cs
- AnnotationObservableCollection.cs
- RtfNavigator.cs
- InternalDispatchObject.cs
- PolyQuadraticBezierSegment.cs
- SoapMessage.cs
- UnionExpr.cs
- SimpleTextLine.cs
- CellLabel.cs
- HtmlButton.cs
- CatalogPart.cs
- SqlXml.cs
- OperationPerformanceCounters.cs
- ChainedAsyncResult.cs
- IdentityModelStringsVersion1.cs
- OrderedDictionary.cs