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
- IsolatedStorageFilePermission.cs
- SmtpReplyReader.cs
- DateTimeParse.cs
- BitmapScalingModeValidation.cs
- DataGridViewRowContextMenuStripNeededEventArgs.cs
- HierarchicalDataSourceDesigner.cs
- SqlProcedureAttribute.cs
- SqlDataSource.cs
- DateTimeUtil.cs
- TextTreeExtractElementUndoUnit.cs
- RowVisual.cs
- VisualStyleTypesAndProperties.cs
- GetWorkflowTree.cs
- WebCodeGenerator.cs
- GeometryDrawing.cs
- ExceptionTranslationTable.cs
- SqlNodeAnnotations.cs
- EasingKeyFrames.cs
- CacheVirtualItemsEvent.cs
- TreeViewBindingsEditorForm.cs
- PrincipalPermission.cs
- ListParaClient.cs
- SQLInt64Storage.cs
- SqlConnectionHelper.cs
- BulletDecorator.cs
- Binding.cs
- PartialTrustVisibleAssembliesSection.cs
- SequenceRangeCollection.cs
- SiteIdentityPermission.cs
- DelegatingConfigHost.cs
- DataTemplate.cs
- WindowsGraphicsCacheManager.cs
- ApplicationDirectory.cs
- SubstitutionList.cs
- MergeFailedEvent.cs
- MultiAsyncResult.cs
- ScrollData.cs
- ByteAnimationUsingKeyFrames.cs
- SecurityException.cs
- SiteIdentityPermission.cs
- Config.cs
- IssuanceLicense.cs
- Image.cs
- CodeMemberMethod.cs
- ServiceModelActivity.cs
- DataGridViewRow.cs
- XmlValidatingReader.cs
- ScriptingJsonSerializationSection.cs
- DateTime.cs
- XmlSchemaGroupRef.cs
- XhtmlConformanceSection.cs
- UnsafeNativeMethodsPenimc.cs
- PathData.cs
- XMLUtil.cs
- ProfileManager.cs
- SqlConnection.cs
- LinqTreeNodeEvaluator.cs
- InvalidComObjectException.cs
- DictionaryGlobals.cs
- StylusPointPropertyInfo.cs
- TemplateColumn.cs
- AsyncOperation.cs
- ToolStripSystemRenderer.cs
- ByteStorage.cs
- ValueType.cs
- StrongNameMembershipCondition.cs
- PassportAuthenticationEventArgs.cs
- CAGDesigner.cs
- OleDbRowUpdatedEvent.cs
- SoapObjectInfo.cs
- IProvider.cs
- DragSelectionMessageFilter.cs
- XmlSchemaInfo.cs
- ServiceContractViewControl.cs
- log.cs
- ListControlBoundActionList.cs
- ToolStripOverflowButton.cs
- DynamicPropertyHolder.cs
- ItemCheckEvent.cs
- VectorValueSerializer.cs
- ProjectionPlanCompiler.cs
- InfocardExtendedInformationCollection.cs
- WaveHeader.cs
- connectionpool.cs
- GridViewCancelEditEventArgs.cs
- RSAOAEPKeyExchangeFormatter.cs
- NavigatorInvalidBodyAccessException.cs
- Point3DIndependentAnimationStorage.cs
- StaticFileHandler.cs
- WindowsAltTab.cs
- NullableIntSumAggregationOperator.cs
- DataGridViewRow.cs
- ReadOnlyDictionary.cs
- GeometryDrawing.cs
- ScrollBar.cs
- ObjectDataSourceDisposingEventArgs.cs
- FormsAuthenticationEventArgs.cs
- UIElementPropertyUndoUnit.cs
- WpfKnownMember.cs
- HttpModuleActionCollection.cs