Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / Configuration / HostingPreferredMapPath.cs / 1305376 / 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
- SafeNativeMethods.cs
- XmlDigitalSignatureProcessor.cs
- NativeMethods.cs
- MethodCallTranslator.cs
- DataFormats.cs
- DataRelationCollection.cs
- GridEntry.cs
- XmlAtomErrorReader.cs
- ClipboardProcessor.cs
- AttributeParameterInfo.cs
- OrderedDictionary.cs
- bindurihelper.cs
- DesignerGeometryHelper.cs
- ClientScriptManager.cs
- smtpconnection.cs
- Activator.cs
- ResourceReferenceExpression.cs
- SetIterators.cs
- JavaScriptObjectDeserializer.cs
- ColorBlend.cs
- XmlParserContext.cs
- TimeSpanSecondsConverter.cs
- StructuredType.cs
- ObjectSpanRewriter.cs
- GlyphShapingProperties.cs
- indexingfiltermarshaler.cs
- IfJoinedCondition.cs
- ArrayElementGridEntry.cs
- ResizeBehavior.cs
- LinkedResource.cs
- IisTraceWebEventProvider.cs
- InkCanvas.cs
- MenuBase.cs
- StaticResourceExtension.cs
- StructuralType.cs
- NullableDoubleSumAggregationOperator.cs
- GridViewSortEventArgs.cs
- PathSegmentCollection.cs
- MemoryFailPoint.cs
- DataReceivedEventArgs.cs
- DbMetaDataFactory.cs
- ToolStripItemTextRenderEventArgs.cs
- figurelengthconverter.cs
- BinaryKeyIdentifierClause.cs
- ClassHandlersStore.cs
- Byte.cs
- MonitoringDescriptionAttribute.cs
- TextTrailingWordEllipsis.cs
- UMPAttributes.cs
- ReadOnlyHierarchicalDataSourceView.cs
- EventHandlerList.cs
- ConsumerConnectionPoint.cs
- Rfc2898DeriveBytes.cs
- SessionStateModule.cs
- Base64Stream.cs
- RuntimeCompatibilityAttribute.cs
- DataControlFieldCell.cs
- DataGridComboBoxColumn.cs
- DrawingServices.cs
- Atom10FormatterFactory.cs
- ContentElement.cs
- GenericsInstances.cs
- StartUpEventArgs.cs
- ByteConverter.cs
- LicFileLicenseProvider.cs
- ComplexBindingPropertiesAttribute.cs
- XmlObjectSerializerReadContextComplex.cs
- TranslateTransform.cs
- JapaneseCalendar.cs
- DiagnosticTraceSource.cs
- DockPanel.cs
- SQLChars.cs
- StringValidatorAttribute.cs
- PersistenceParticipant.cs
- XslCompiledTransform.cs
- UrlSyndicationContent.cs
- TypeDescriptionProvider.cs
- XmlDataImplementation.cs
- RuleSetBrowserDialog.cs
- FileVersionInfo.cs
- UInt64Converter.cs
- DataGridViewRowPostPaintEventArgs.cs
- ScriptDescriptor.cs
- HiddenFieldPageStatePersister.cs
- DbConnectionInternal.cs
- ListComponentEditor.cs
- TextRangeEdit.cs
- HitTestResult.cs
- AssemblyInfo.cs
- CreateUserWizard.cs
- ClientRoleProvider.cs
- WinEventTracker.cs
- Storyboard.cs
- OledbConnectionStringbuilder.cs
- SR.Designer.cs
- CmsInterop.cs
- Quaternion.cs
- COM2IPerPropertyBrowsingHandler.cs
- ResizingMessageFilter.cs
- DiagnosticsConfiguration.cs