Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / xsp / System / Web / Configuration / HostingPreferredMapPath.cs / 1 / 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.
//
//-----------------------------------------------------------------------------
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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- LabelAutomationPeer.cs
- SecurityChannelFaultConverter.cs
- XmlSchemaObjectTable.cs
- SoapReflectionImporter.cs
- ColorConverter.cs
- PenLineJoinValidation.cs
- CodeTypeDeclarationCollection.cs
- ManagementPath.cs
- JumpTask.cs
- FolderLevelBuildProviderAppliesToAttribute.cs
- NominalTypeEliminator.cs
- StickyNoteAnnotations.cs
- Encoder.cs
- XmlArrayAttribute.cs
- SequentialWorkflowRootDesigner.cs
- ManagementOperationWatcher.cs
- ObjectStateManagerMetadata.cs
- CommandID.cs
- DataGridViewColumnHeaderCell.cs
- RoleManagerSection.cs
- MatrixTransform3D.cs
- PopupControlService.cs
- XPathArrayIterator.cs
- SetIterators.cs
- XmlLanguage.cs
- _NestedSingleAsyncResult.cs
- DataFieldEditor.cs
- UTF7Encoding.cs
- AppDomain.cs
- UIHelper.cs
- WebPartMenuStyle.cs
- XamlLoadErrorInfo.cs
- Socket.cs
- LockedHandleGlyph.cs
- BaseCodePageEncoding.cs
- Solver.cs
- SqlConnectionManager.cs
- ParallelTimeline.cs
- CalloutQueueItem.cs
- XmlNodeChangedEventManager.cs
- WindowsListViewGroupSubsetLink.cs
- PropertyItem.cs
- DecoratedNameAttribute.cs
- WebContext.cs
- CodeSnippetStatement.cs
- EventWaitHandleSecurity.cs
- CollectionChangedEventManager.cs
- FixedSOMSemanticBox.cs
- infer.cs
- OLEDB_Util.cs
- SafeReadContext.cs
- CqlParser.cs
- SourceElementsCollection.cs
- GregorianCalendarHelper.cs
- FontStretchConverter.cs
- TextSimpleMarkerProperties.cs
- ReceiveActivity.cs
- HttpException.cs
- ExpressionBindingCollection.cs
- FileAuthorizationModule.cs
- SQLInt64Storage.cs
- XmlSchemaComplexType.cs
- Polygon.cs
- MenuTracker.cs
- WsdlBuildProvider.cs
- DnsEndPoint.cs
- InstallerTypeAttribute.cs
- ThreadPool.cs
- AppliesToBehaviorDecisionTable.cs
- TdsParserStaticMethods.cs
- TextBoxBase.cs
- SiteMapHierarchicalDataSourceView.cs
- XmlDocumentType.cs
- ColumnWidthChangingEvent.cs
- PropertyValueUIItem.cs
- XsltSettings.cs
- ContextMenu.cs
- DocumentGridPage.cs
- AdornerDecorator.cs
- QilTypeChecker.cs
- HashHelper.cs
- BamlMapTable.cs
- AccessorTable.cs
- InfoCardRSAOAEPKeyExchangeFormatter.cs
- AuthenticationModuleElementCollection.cs
- HotSpotCollection.cs
- SevenBitStream.cs
- MetadataPropertyAttribute.cs
- BinaryExpression.cs
- ToolBarPanel.cs
- Signature.cs
- IgnoreFileBuildProvider.cs
- DataGridViewTextBoxEditingControl.cs
- EventNotify.cs
- AnnotationResource.cs
- GetPageNumberCompletedEventArgs.cs
- TextEditor.cs
- SectionXmlInfo.cs
- UnsafeNativeMethods.cs
- parserscommon.cs