Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- _SslState.cs
- XmlSchemaAnyAttribute.cs
- ListenerElementsCollection.cs
- InvalidPrinterException.cs
- RadioButtonBaseAdapter.cs
- BufferedStream.cs
- CheckBoxPopupAdapter.cs
- SwitchElementsCollection.cs
- ChannelSinkStacks.cs
- SqlServices.cs
- LicenseManager.cs
- EditBehavior.cs
- StrongNameIdentityPermission.cs
- RijndaelManaged.cs
- DbParameterHelper.cs
- MergePropertyDescriptor.cs
- DataGridViewRowsAddedEventArgs.cs
- DrawingVisual.cs
- EmissiveMaterial.cs
- _UriTypeConverter.cs
- QuerySubExprEliminator.cs
- GZipObjectSerializer.cs
- TableLayoutSettings.cs
- PermissionListSet.cs
- XsdDateTime.cs
- DeflateStreamAsyncResult.cs
- RepeaterItem.cs
- NativeMethods.cs
- VectorKeyFrameCollection.cs
- RuntimeWrappedException.cs
- BaseProcessor.cs
- DataGridViewCellConverter.cs
- Events.cs
- DescendentsWalker.cs
- BamlTreeNode.cs
- DataSourceDesigner.cs
- RowsCopiedEventArgs.cs
- XamlBuildTaskServices.cs
- CustomPopupPlacement.cs
- AttributeCollection.cs
- LOSFormatter.cs
- GatewayIPAddressInformationCollection.cs
- XmlWrappingReader.cs
- EventDriven.cs
- ViewManager.cs
- CodeSnippetTypeMember.cs
- DelegateArgumentValue.cs
- AnonymousIdentificationModule.cs
- DispatchChannelSink.cs
- StyleBamlRecordReader.cs
- ConstraintCollection.cs
- ToolboxItemCollection.cs
- DropShadowBitmapEffect.cs
- Transform3D.cs
- FrameworkObject.cs
- ByeMessageCD1.cs
- ProxyWebPart.cs
- PeerInvitationResponse.cs
- KnowledgeBase.cs
- InheritanceUI.cs
- SocketPermission.cs
- StructureChangedEventArgs.cs
- JournalEntryStack.cs
- ResourceReferenceKeyNotFoundException.cs
- RightsManagementErrorHandler.cs
- ActivityBindForm.cs
- GenericWebPart.cs
- BamlBinaryWriter.cs
- JoinSymbol.cs
- XPathNodePointer.cs
- FilterQueryOptionExpression.cs
- SurrogateSelector.cs
- ToolStripGripRenderEventArgs.cs
- Pts.cs
- VectorValueSerializer.cs
- Model3D.cs
- DataControlLinkButton.cs
- SystemResourceKey.cs
- IsolatedStorageFilePermission.cs
- HttpModulesSection.cs
- AssociationEndMember.cs
- PageContentCollection.cs
- ValueUnavailableException.cs
- ValueType.cs
- PersonalizableTypeEntry.cs
- XmlDataCollection.cs
- Pkcs7Signer.cs
- StringAttributeCollection.cs
- Point.cs
- SqlInternalConnectionSmi.cs
- TypeDescriptor.cs
- EdgeModeValidation.cs
- OdbcTransaction.cs
- SapiInterop.cs
- AssertSection.cs
- UpdatePanel.cs
- WindowsIdentity.cs
- DataGridCaption.cs
- LocatorGroup.cs
- IDReferencePropertyAttribute.cs